<!DOCTYPE html>
<html lang="en-US" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>01-VS Code的使用 | blog-fifi</title>
    <meta name="description" content="blog-fifi">
    <link rel="preload stylesheet" href="/blog-fifi/assets/style.7f8a11cd.css" as="style">
    <script type="module" src="/blog-fifi/assets/app.7423d81a.js"></script>
    <link rel="preload" href="/blog-fifi/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
  <link rel="modulepreload" href="/blog-fifi/assets/chunks/framework.832357a3.js">
  <link rel="modulepreload" href="/blog-fifi/assets/chunks/theme.ea8c38f0.js">
  <link rel="modulepreload" href="/blog-fifi/assets/前端工具_01-VS Code的使用.md.959a7ce4.lean.js">
  <script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
  </head>
  <body>
    <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-94c81dcc><div class="container" data-v-94c81dcc><div class="title" data-v-94c81dcc><div class="VPNavBarTitle has-sidebar" data-v-94c81dcc data-v-f4ef19a3><a class="title" href="/blog-fifi/" data-v-f4ef19a3><!--[--><!--]--><!----><!--[-->blog-fifi<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-94c81dcc><div class="curtain" data-v-94c81dcc></div><div class="content-body" data-v-94c81dcc><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:&#39;Meta&#39;;" data-v-94c81dcc><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-94c81dcc data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/blog-fifi/" tabindex="0" data-v-7f418b0f data-v-37adc828 data-v-8f4dc553><!--[-->Home<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/blog-fifi/%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8.html" tabindex="0" data-v-7f418b0f data-v-37adc828 data-v-8f4dc553><!--[-->前端工具<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/01%E8%84%9A%E6%89%8B%E6%9E%B6.html" tabindex="0" data-v-7f418b0f data-v-37adc828 data-v-8f4dc553><!--[-->前端基础<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/01%E8%84%9A%E6%89%8B%E6%9E%B6.html" tabindex="0" data-v-7f418b0f data-v-37adc828 data-v-8f4dc553><!--[-->前端框架<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/blog-fifi/%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8.html" tabindex="0" data-v-7f418b0f data-v-37adc828 data-v-8f4dc553><!--[-->其他<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-94c81dcc data-v-f6a63727><label title="toggle dark mode" data-v-f6a63727 data-v-a9c8afb8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-a9c8afb8 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-a9c8afb8><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-a9c8afb8><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></label></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-94c81dcc data-v-0394ad82 data-v-f6988cfb><!--[--><a class="VPSocialLink" href="https://github.com/feifei128/" aria-label="github" target="_blank" rel="noopener" data-v-f6988cfb data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-94c81dcc data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><label title="toggle dark mode" data-v-40855f84 data-v-a9c8afb8><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" aria-checked="false" data-v-a9c8afb8 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-a9c8afb8><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-a9c8afb8><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></label></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-f6988cfb><!--[--><a class="VPSocialLink" href="https://github.com/feifei128/" aria-label="github" target="_blank" rel="noopener" data-v-f6988cfb data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-94c81dcc data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>前端工具</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>01 VS Code</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/02-Git%E7%9A%84%E4%BD%BF%E7%94%A8.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>02 Git</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/03-%E7%BD%91%E7%BB%9C%E6%8A%93%E5%8C%85%E5%92%8C%E4%BB%A3%E7%90%86%E5%B7%A5%E5%85%B7%EF%BC%9AWhistle.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>03 网络抓包和代理工具</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible collapsed" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>前端基础</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><section class="VPSidebarItem level-1" data-v-c4656e6d data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h3 class="text" data-v-c4656e6d>HTML</h3><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/01%E8%84%9A%E6%89%8B%E6%9E%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>01 脚手架</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/02%E7%BB%84%E4%BB%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>02 组件</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1" data-v-c4656e6d data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h3 class="text" data-v-c4656e6d>CSS</h3><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/01%E8%84%9A%E6%89%8B%E6%9E%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>01 脚手架</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/02%E7%BB%84%E4%BB%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>02 组件</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1" data-v-c4656e6d data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h3 class="text" data-v-c4656e6d>JS</h3><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/01%E8%84%9A%E6%89%8B%E6%9E%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>01 脚手架</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/02%E7%BB%84%E4%BB%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>02 组件</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1" data-v-c4656e6d data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h3 class="text" data-v-c4656e6d>TS</h3><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/01%E8%84%9A%E6%89%8B%E6%9E%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>01 脚手架</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/02%E7%BB%84%E4%BB%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>02 组件</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible collapsed" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>前端框架</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><section class="VPSidebarItem level-1" data-v-c4656e6d data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h3 class="text" data-v-c4656e6d>React18</h3><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/01%E8%84%9A%E6%89%8B%E6%9E%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>01 脚手架</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E6%A1%86%E6%9E%B6/React/02%E7%BB%84%E4%BB%B6.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>02 组件</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/blog-fifi/%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/02-Git%E7%9A%84%E4%BD%BF%E7%94%A8.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Vue3</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible collapsed" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>其他</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><section class="VPSidebarItem level-1" data-v-c4656e6d data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h3 class="text" data-v-c4656e6d>ChatGPT</h3><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="https://poe.com/" target="_blank" rel="noreferrer" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>接口 1</p><!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="https://freegpt.one/" target="_blank" rel="noreferrer" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>接口 2</p><!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="https://chatbot.theb.ai/" target="_blank" rel="noreferrer" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>接口 3</p><!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _blog-fifi_%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7_01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8" data-v-c4b0d3cf><div><!----><h2 id="前言" tabindex="-1">前言 <a class="header-anchor" href="#前言" aria-label="Permalink to &quot;前言&quot;">​</a></h2><blockquote><p>文章标题：《第一次使用 VS Code 时你应该知道的一切配置》。本文的最新内容，更新于 2021-10-09。大家完全不用担心这篇文章会过时，因为随着 VS Code 的版本更新和插件更新，本文也会随之更新。</p></blockquote><blockquote><p>本文的最新内容，也会在<a href="https://github.com/qianguyihao/Web/blob/master/00-%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8.md" target="_blank" rel="noreferrer">GitHub</a>上同步更新，欢迎 star。</p></blockquote><p>VS Code 软件实在是太酷、太好用了，越来越多的新生代互联网民工正在使用它。</p><p>前端男神<strong>尤雨溪</strong>大大这样评价 VS Code：</p><p><img src="http://img.smyhvae.com/20200619_0133.png" alt=""></p><p>有一点你可能会感到惊讶：VS Code 这款软件本身，是用 JavaScript 语言编写的（具体请自行查阅基于 JS 的 PC 客户端开发框架 <code>Electron</code>）。Jeff Atwood 在 2007 年提出了著名的 Atwood 定律：</p><blockquote><p><strong>任何能够用 JavaScript 实现的应用系统，最终都必将用 JavaScript 实现</strong>。</p></blockquote><p>Jeff Atwood 这个人是谁不重要（他是 Stack Overflow 网站的联合创始人），重要的是这条定律。</p><p>前端目前是处在春秋战国时代，各路英雄豪杰成为后浪，各种框架工具层出不穷，VS Code 软件无疑是大前端时代最骄傲的工具。</p><p>如果你是做前端开发（JavaScript 编程语言为主），则完全可以将 VS Code 作为「<strong>主力开发工具</strong>」。这款软件是为前端同学量身定制的，开箱即用。</p><p>如果你是做其他语言方向的开发，并且不需要太复杂的集成开发环境，那么，你可以把 VS Code 作为「<strong>代码编辑器</strong>」来使用，纵享丝滑。</p><p>甚至是一些写文档、写作的同学，也经常把 VS Code 作为 markdown <strong>写作工具</strong>，毫无违和感。</p><p>退而求其次，即便你不属于以上任何范畴，你还可以把 VS Code 当作最简单的<strong>文本编辑器</strong>来使用，完胜 Windows 系统自带的记事本。</p><p>写下这篇文章，是顺势而为。</p><h2 id="一、惊艳登场-vs-code-的介绍" tabindex="-1">一、惊艳登场：VS Code 的介绍 <a class="header-anchor" href="#一、惊艳登场-vs-code-的介绍" aria-label="Permalink to &quot;一、惊艳登场：VS Code 的介绍&quot;">​</a></h2><p>VS Code 的全称是 Visual Studio Code，是一款开源的、免费的、跨平台的、高性能的、轻量级的代码编辑器。它在性能、语言支持、开源社区方面，都做得很不错。</p><p>微软有两种软件：一种是 VS Code，一种是其他软件。</p><p>在 2015 年 4 月 29 日的微软 Build 开发者大会上，微软宣布推出 VS Code 之后，这个轻量级的编辑器成为全球无数开发者们最喜爱的开发工具。VS Code 基于开源且跨平台的理念，每月都会进行迭代，并提供每天发布的 insider 版本（insider 是微软的一种公测计划，类似于国内软件所说的内测版）。它拥有至少几万个插件，生态极为活跃和丰富。</p><h3 id="ide-与-编辑器的对比" tabindex="-1">IDE 与 编辑器的对比 <a class="header-anchor" href="#ide-与-编辑器的对比" aria-label="Permalink to &quot;IDE 与 编辑器的对比&quot;">​</a></h3><p>IDE 和编辑器是有区别的：</p><ul><li><p><strong>IDE</strong>（Integrated Development Environment，集成开发环境）：对代码有较好的智能提示和相互跳转，同时侧重于工程项目，对项目的开发、调试工作有较好的图像化界面的支持，因此比较笨重。比如 Eclipse 的定位就是 IDE。</p></li><li><p><strong>编辑器</strong>：要相对轻量许多，侧重于文本的编辑。比如 Sublime Text 的定位就是编辑器。再比如 Windows 系统自带的「记事本」就是最简单的编辑器。</p></li></ul><p>需要注意的是，VS Code 的定位是<strong>编辑器</strong>，而非 IDE ，但 VS Code 又比一般的编辑器的功能要丰富许多。可以这样理解：VS Code 的体量是介于编辑器和 IDE 之间。VS Code 的使命，是让开发者在编辑器里拥有 IDE 那样的开发体验。</p><p>VS Code 流行起来之后，使用 Sublime Text、Atom 这类编辑器软件的人，自然就越来越少了。</p><h3 id="vs-code-的特点" tabindex="-1">VS Code 的特点 <a class="header-anchor" href="#vs-code-的特点" aria-label="Permalink to &quot;VS Code 的特点&quot;">​</a></h3><ul><li>跨平台：支持 MacOS、Windows 和 Linux 等多个平台。在这多种平台下，拥有一致的用户界面和开发体验。</li><li>开源：VS Code 的源代码以 MIT 协议开源。不仅代码开源，而且整个产品的开发计划和发布管理也都是开源的。VS Code 团队每年都会在 GitHub 的 Wiki 上发布 <a href="https://github.com/microsoft/vscode/wiki/Roadmap" target="_blank" rel="noreferrer">Roadmap</a>，列出一整年的规划图。VS Code 软件的官方文档也托管在了 <a href="https://github.com/Microsoft/vscode-docs" target="_blank" rel="noreferrer">GitHub</a> 上。</li><li>自带终端、图形化的调试工具、Git 版本控制。</li><li>插件扩展：支持第三方插件，功能强大。既有中心化的插件市场，也可以直接在 VS Code 里搜索你想要的插件。</li><li>生态：社区生态活跃且丰富，社区氛围浓厚。</li><li>自带 emmet：支持代码自动补全，快速生成简单的语法结构。要知道，这个功能在 Sublime Text 中，得先安装插件才行。</li><li>语法支持：VS Code 自带了 JavaScript、TypeScript 和 Node.js 的<strong>语法支持</strong>，包括：<strong>语法高亮、代码智能提示和补全、括号匹配、颜色区分、代码片段提示</strong>等。也就是说，你在书写 JS 和 TS 时，这些语法支持都是自带的。其他的一些语言，你需要先安装相应的<strong>扩展包</strong>插件，就出现语法支持。</li><li>在修改配置方面，既有图形化的配置界面，也有 基于 JSON 文件的配置方式，满足不同人群的使用习惯。</li></ul><h3 id="前端利器之争-vs-code-与-webstorm" tabindex="-1">前端利器之争： VS Code 与 WebStorm <a class="header-anchor" href="#前端利器之争-vs-code-与-webstorm" aria-label="Permalink to &quot;前端利器之争： VS Code 与 WebStorm&quot;">​</a></h3><p>前端小白最喜欢问的一个问题是：哪个编辑器/IDE 好用？是 VS Code 还是 WebStorm （WebStorm 其实是 IntelliJ IDEA 的定制版）？我来做个对比：</p><ul><li><p><strong>哪个更酷</strong>：显然 VS Code 更酷。</p></li><li><p><strong>内存占用情况</strong>：根据我的观察，VS Code 是很占内存的（尤其是当你打开多个窗口的时候），但如果你的内存条够用，使用起来是不会有任何卡顿的感觉的。相比之下，IntelliJ IDEA 不仅非常占内存，而且还非常卡顿。如果你想换个既轻量级、又不占内存的编辑器，最好还是使用「Sublime Text」编辑器。</p></li><li><p><strong>使用比例</strong>：当然是 VS Code 更胜一筹。先不说别的，我就拿数据说话，我目前所在的研发团队有 200 人左右（120 个后台、80 个前端），他们绝大部分人都在用 VS Code 编码，妥妥的。</p></li></ul><p>所以，如果你以后还问这个问题，那就真有些掉底了。</p><h3 id="vs-code-的技术栈、核心组件" tabindex="-1">VS Code 的技术栈、核心组件 <a class="header-anchor" href="#vs-code-的技术栈、核心组件" aria-label="Permalink to &quot;VS Code 的技术栈、核心组件&quot;">​</a></h3><p>了解 VS Code 的技术栈和核心组件，可以让我们对 VS Code 有更深入的认识。此小段，了解即可。</p><ul><li>开发框架：Electron。Electron 可以使用 Node.js + JS 这样的技术栈开发桌面 GUI 应用程序。</li><li>编辑器：Monaco Editor。Monaco Editor 是一款开源的在线代码编辑器，是 <strong>VS Code 浏览器版本</strong>的最核心组件。<a href="https://zhuanlan.zhihu.com/p/88828576" target="_blank" rel="noreferrer">#</a></li><li>编程语言：TypeScript。TypeScript 是 JavaScript 的严格超集。TS 在 JS 的基础上添加了许多功能，引入了声明文件，而且支持类型扩展。TS 适合长期的、多人开发的大型项目开发。</li><li>让编辑器支持语言功能：Language Server Protocol （LSP） 语言服务协议。LSP 是编辑器/IDE 与语言服务器之间的一种协议，通过 JSON-PRC 传输消息，可以让编辑器嵌入并支持各种编程语言。开发者可以在编辑器中使用各种语言来编写程序。</li><li>让编辑器支持调试功能：Debug Adapter Protocol（DAP）。DAP 是基于 JSON 的协议，它抽象了开发工具与调试工具质检的通信。</li><li>集成终端：Xterm.js。VS Code 的集成终端是基于开源项目 <a href="https://github.com/xtermjs/xterm.js/" target="_blank" rel="noreferrer">Xterm.js</a> 进行开发的。Xterm.js 是一个使用 TS 开发的终端组件。另外，Xterm.js 并不是直接下来下来就能用的终端应用，它只是一个前端组件，可以与 bash 这样的进程进行连接，然后让用户通过 Xterm.js 进行交互。</li></ul><h3 id="vs-code-的安装" tabindex="-1">VS Code 的安装 <a class="header-anchor" href="#vs-code-的安装" aria-label="Permalink to &quot;VS Code 的安装&quot;">​</a></h3><ul><li>VS Code 官网：<a href="https://code.visualstudio.com" target="_blank" rel="noreferrer">https://code.visualstudio.com</a></li></ul><p>VS Code 的安装很简单，直接去官网下载安装包，然后双击安装即可。</p><p><img src="http://img.smyhvae.com/20190313_1750_3.png" alt=""></p><p>上图中，直接点击 download，一键下载安装即可。</p><p>VS Code 支持以下平台：</p><p><img src="https://img.smyhvae.com/20210930_1930.png" alt=""></p><p>安装完成后的界面如下：</p><p><img src="https://img.smyhvae.com/20211011_1703.png" alt=""></p><p>VS Code 被分为以下五个区域：</p><ul><li>编辑器</li><li>侧边栏</li><li>状态栏</li><li>活动栏</li><li>面板</li></ul><p>VS Code 在功能上非常克制，只包含了大多数开发流程中所需要的基础模块，包括：编辑器、文件管理、窗口管理、首选项设置、终端等。</p><p>你需要根据具体需要安装额外的组件或者插件。比如说，如果开发 TS 项目，则需要安装 TS 编译器、ESLint、TSLint 等编译工具。如果开发 C 语言项目，则需要安装 gcc、Clang 等编辑工具。</p><h2 id="二、崭露锋芒-vs-code-快捷键" tabindex="-1">二、崭露锋芒：VS Code 快捷键 <a class="header-anchor" href="#二、崭露锋芒-vs-code-快捷键" aria-label="Permalink to &quot;二、崭露锋芒：VS Code 快捷键&quot;">​</a></h2><p>VS Code 用得熟不熟，首先就看你是否会用快捷键。以下列出的内容，都是常用快捷键，而加粗部分的快捷键，使用频率则非常高。</p><p>任何工具，掌握 20%的技能，足矣应对 80% 的工作。既然如此，你可能会问：那就只保留 20% 的特性，不久可以满足 80%的用户了吗？</p><p>但我想说的是：<strong>那从来都不是同样的 20%</strong>，每个人都会用到不同的功能。</p><p>掌握下面这些高频核心快捷键，你和你的工具，足矣露出锋芒。</p><h3 id="_1、工作区快捷键" tabindex="-1">1、工作区快捷键 <a class="header-anchor" href="#_1、工作区快捷键" aria-label="Permalink to &quot;1、工作区快捷键&quot;">​</a></h3><table><thead><tr><th style="text-align:left;">Mac 快捷键</th><th style="text-align:left;">Win 快捷键</th><th style="text-align:left;">作用</th><th style="text-align:left;">备注</th></tr></thead><tbody><tr><td style="text-align:left;"><strong>Cmd + Shift + P</strong></td><td style="text-align:left;"><strong>Ctrl + Shift + P</strong>，F1</td><td style="text-align:left;">显示命令面板</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;"><strong>Cmd + B</strong></td><td style="text-align:left;"><strong>Ctrl + B</strong></td><td style="text-align:left;">显示/隐藏侧边栏</td><td style="text-align:left;">很实用</td></tr><tr><td style="text-align:left;"><code>Cmd + \</code></td><td style="text-align:left;"><code>Ctrl + \</code></td><td style="text-align:left;"><strong>拆分为多个编辑器</strong></td><td style="text-align:left;">【重要】抄代码利器</td></tr><tr><td style="text-align:left;"><strong>Cmd + 1、2</strong></td><td style="text-align:left;"><strong>Ctrl + 1、2</strong></td><td style="text-align:left;">聚焦到第 1、第 2 个编辑器</td><td style="text-align:left;">同上重要</td></tr><tr><td style="text-align:left;"><strong>Cmd + +、Cmd + -</strong></td><td style="text-align:left;"><strong>ctrl + +、ctrl + -</strong></td><td style="text-align:left;">将工作区放大/缩小（包括代码字体、左侧导航栏）</td><td style="text-align:left;">在投影仪场景经常用到</td></tr><tr><td style="text-align:left;">Cmd + J</td><td style="text-align:left;">Ctrl + J</td><td style="text-align:left;">显示/隐藏控制台</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;"><strong>Cmd + Shift + N</strong></td><td style="text-align:left;"><strong>Ctrl + Shift + N</strong></td><td style="text-align:left;">重新开一个软件的窗口</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;">Cmd + Shift + W</td><td style="text-align:left;">Ctrl + Shift + W</td><td style="text-align:left;">关闭软件的当前窗口</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + N</td><td style="text-align:left;">Ctrl + N</td><td style="text-align:left;">新建文件</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + W</td><td style="text-align:left;">Ctrl + W</td><td style="text-align:left;">关闭当前文件</td><td style="text-align:left;"></td></tr></tbody></table><h3 id="_2、跳转操作" tabindex="-1">2、跳转操作 <a class="header-anchor" href="#_2、跳转操作" aria-label="Permalink to &quot;2、跳转操作&quot;">​</a></h3><table><thead><tr><th style="text-align:left;">Mac 快捷键</th><th style="text-align:left;">Win 快捷键</th><th style="text-align:left;">作用</th><th style="text-align:left;">备注</th></tr></thead><tbody><tr><td style="text-align:left;">Cmd + `</td><td style="text-align:left;">没有</td><td style="text-align:left;">在同一个软件的<strong>多个工作区</strong>之间切换</td><td style="text-align:left;">使用很频繁</td></tr><tr><td style="text-align:left;"><strong>Cmd + Option + 左右方向键</strong></td><td style="text-align:left;">Ctrl + Pagedown/Pageup</td><td style="text-align:left;">在已经打开的<strong>多个文件</strong>之间进行切换</td><td style="text-align:left;">非常实用</td></tr><tr><td style="text-align:left;">Ctrl + Tab</td><td style="text-align:left;">Ctrl + Tab</td><td style="text-align:left;">在已经打开的多个文件之间进行跳转</td><td style="text-align:left;">不如上面的快捷键快</td></tr><tr><td style="text-align:left;">Cmd + Shift + O</td><td style="text-align:left;">Ctrl + shift + O</td><td style="text-align:left;">在当前文件的各种<strong>方法之间</strong>（符号：Symbol）进行跳转</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + T</td><td style="text-align:left;">Ctrl + T</td><td style="text-align:left;">在当前<strong>工作区</strong>的各种方法之间（符号：Symbol）进行跳转</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Ctrl + G</td><td style="text-align:left;">Ctrl + G</td><td style="text-align:left;">跳转到指定行</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;"><code>Cmd+Shift+\</code></td><td style="text-align:left;"><code>Ctrl+Shift+\</code></td><td style="text-align:left;">跳转到匹配的括号</td><td style="text-align:left;"></td></tr></tbody></table><h3 id="_3、移动光标" tabindex="-1">3、移动光标 <a class="header-anchor" href="#_3、移动光标" aria-label="Permalink to &quot;3、移动光标&quot;">​</a></h3><table><thead><tr><th style="text-align:left;">Mac 快捷键</th><th style="text-align:left;">Win 快捷键</th><th style="text-align:left;">作用</th><th style="text-align:left;">备注</th></tr></thead><tbody><tr><td style="text-align:left;">方向键</td><td style="text-align:left;">方向键</td><td style="text-align:left;">在<strong>单个字符</strong>之间移动光标</td><td style="text-align:left;">大家都知道</td></tr><tr><td style="text-align:left;"><strong>option + 左右方向键</strong></td><td style="text-align:left;"><strong>Ctrl + 左右方向键</strong></td><td style="text-align:left;">在<strong>单词</strong>之间移动光标</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;"><strong>Cmd + 左右方向键</strong></td><td style="text-align:left;"><strong>Fn + 左右方向键</strong>（或 Win + 左右方向键）</td><td style="text-align:left;">将光标定位到当前行的最左侧、最右侧（在<strong>整行</strong>之间移动光标）</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;"><strong>Option + Alt + 左右方向键</strong></td><td style="text-align:left;"><strong>Alt + Shift + 左右方向键</strong></td><td style="text-align:left;">左右扩大/缩小选中的范围</td><td style="text-align:left;">很酷，极为高效</td></tr><tr><td style="text-align:left;">Cmd + ↑</td><td style="text-align:left;">Ctrl + Home</td><td style="text-align:left;">将光标定位到文件的第一行</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + ↓</td><td style="text-align:left;">Ctrl + End</td><td style="text-align:left;">将光标定位到文件的最后一行</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + Shift + \</td><td style="text-align:left;"></td><td style="text-align:left;">在<strong>代码块</strong>之间移动光标</td><td style="text-align:left;"></td></tr></tbody></table><h3 id="_4、编辑操作" tabindex="-1">4、编辑操作 <a class="header-anchor" href="#_4、编辑操作" aria-label="Permalink to &quot;4、编辑操作&quot;">​</a></h3><table><thead><tr><th style="text-align:left;">Mac 快捷键</th><th style="text-align:left;">Win 快捷键</th><th style="text-align:left;">作用</th><th style="text-align:left;">备注</th></tr></thead><tbody><tr><td style="text-align:left;">Cmd + C</td><td style="text-align:left;">Ctrl + C</td><td style="text-align:left;">复制</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + X</td><td style="text-align:left;">Ctrl + X</td><td style="text-align:left;">剪切</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + C</td><td style="text-align:left;">Ctrl + V</td><td style="text-align:left;">粘贴</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;"><strong>Cmd + Enter</strong></td><td style="text-align:left;"><strong>Ctrl + Enter</strong></td><td style="text-align:left;">在当前行的下方新增一行，然后跳至该行</td><td style="text-align:left;">即使光标不在行尾，也能快速向下插入一行</td></tr><tr><td style="text-align:left;">Cmd+Shift+Enter</td><td style="text-align:left;">Ctrl+Shift+Enter</td><td style="text-align:left;">在当前行的上方新增一行，然后跳至该行</td><td style="text-align:left;">即使光标不在行尾，也能快速向上插入一行</td></tr><tr><td style="text-align:left;"><strong>Option + ↑</strong></td><td style="text-align:left;"><strong>Alt + ↑</strong></td><td style="text-align:left;">将代码向上移动</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;"><strong>Option + ↓</strong></td><td style="text-align:left;"><strong>Alt + ↓</strong></td><td style="text-align:left;">将代码向下移动</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;">Option + Shift + ↑</td><td style="text-align:left;">Alt + Shift + ↑</td><td style="text-align:left;">将代码向上复制一行</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;"><strong>Option + Shift + ↓</strong></td><td style="text-align:left;"><strong>Alt + Shift + ↓</strong></td><td style="text-align:left;">将代码向下复制一行</td><td style="text-align:left;">写重复代码的利器</td></tr></tbody></table><p>另外再补充一点：将光标点击到某一行的任意位置时，默认就已经是<strong>选中全行</strong>了，此时可以直接<strong>复制</strong>或<strong>剪切</strong>，无需点击鼠标。这个非常实用，是所有的编辑操作中，使用得最频繁的。它可以有以下使用场景：</p><ul><li>场景 1：假设光标现在处于第 5 行的<strong>任意位置</strong>，那么，直接依次按下 <code>Cmd + C</code> 和 <code>Cmd + V</code>，就会把这行代码复制到第 6 行。继续按 <code>Cmd + C</code> 和 <code>Cmd + V</code>，就会把这行代码复制到第 7 行。copy 代码 so easy。</li><li>场景 2：假设光标现在处于第 5 行，那么，先按下 <code>Cmd + C</code>，然后按两下<code>↑</code> 方向键，此时光标处于第 3 行；紧接着，继续按下<code>Cmd + V</code>，就会把刚刚那行代码复制到第 3 行，原本处于第 3 行的代码会整体<strong>下移</strong>。</li></ul><p>你看到了没？上面的两个场景，我全程没有使用鼠标，只通过简单的复制粘贴和方向键，就做到了如此迅速的 copy 代码。你说是不是很高效？</p><h3 id="_5、删除操作" tabindex="-1">5、删除操作 <a class="header-anchor" href="#_5、删除操作" aria-label="Permalink to &quot;5、删除操作&quot;">​</a></h3><table><thead><tr><th style="text-align:left;">Mac 快捷键</th><th style="text-align:left;">Win 快捷键</th><th style="text-align:left;">作用</th><th style="text-align:left;">备注</th></tr></thead><tbody><tr><td style="text-align:left;">Cmd + shift + K</td><td style="text-align:left;">Ctrl + Shift + K</td><td style="text-align:left;">删除整行</td><td style="text-align:left;">「Cmd + X」的作用是剪切，但也可以删除整行</td></tr><tr><td style="text-align:left;"><strong>option + Backspace</strong></td><td style="text-align:left;"><strong>Ctrl + Backspace</strong></td><td style="text-align:left;">删除光标之前的一个单词</td><td style="text-align:left;">英文有效，很常用</td></tr><tr><td style="text-align:left;">option + delete</td><td style="text-align:left;">Ctrl + delete</td><td style="text-align:left;">删除光标之后的一个单词</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;"><strong>Cmd + Backspace</strong></td><td style="text-align:left;"></td><td style="text-align:left;">删除光标之前的整行内容</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;">Cmd + delete</td><td style="text-align:left;"></td><td style="text-align:left;">删除光标之后的整行内容</td><td style="text-align:left;"></td></tr></tbody></table><p>备注：上面所讲到的移动光标、编辑操作、删除操作的快捷键，在其他编辑器里，大部分都适用。</p><h3 id="_6、多光标选择-多光标编辑" tabindex="-1">6、多光标选择/多光标编辑 <a class="header-anchor" href="#_6、多光标选择-多光标编辑" aria-label="Permalink to &quot;6、多光标选择/多光标编辑&quot;">​</a></h3><p>多光标选择在编程的<strong>提效</strong>方面可谓立下了汗马功劳。因为比较难记住，所以你要时不时回来复习这一段。</p><table><thead><tr><th>Mac 快捷键</th><th>Win 快捷键</th><th>作用</th><th>备注</th></tr></thead><tbody><tr><td><strong>Option + 鼠标连续点击任意位置</strong></td><td><strong>Alt + 鼠标连续点击任意位置</strong></td><td>在任意位置，同时出现多个光标</td><td>很容易记住</td></tr><tr><td>Cmd + D</td><td>Ctrl + D</td><td>将光标放在某个单词的位置（或者先选中某个单词），然后反复按下「 <strong>Cmd + D</strong> 」键， 即可将下一个相同的词逐一加入选择。</td><td>较常用</td></tr><tr><td><strong>Cmd + Shift + L</strong></td><td><strong>Ctrl + Shift + L</strong></td><td>将光标放在某个单词的位置（或者先选中某个单词），然后按下快捷键，则所有的相同内容处，都会出现光标。</td><td>很常用。比如变量重命名的时候，就经常用到</td></tr></tbody></table><h3 id="_7、多列选择-多列编辑" tabindex="-1">7、多列选择/多列编辑 <a class="header-anchor" href="#_7、多列选择-多列编辑" aria-label="Permalink to &quot;7、多列选择/多列编辑&quot;">​</a></h3><p>多列选择是更高效的多光标选择，所以单独列成一小段。</p><table><thead><tr><th>Mac 快捷键</th><th>Win 快捷键</th><th>作用</th><th>备注</th></tr></thead><tbody><tr><td>Cmd + Option + 上下键</td><td>Ctrl + Alt + 上下键</td><td>在连续的多列上，同时出现多个光标</td><td>较常用</td></tr><tr><td>Option + Shift + 鼠标拖动</td><td>Alt + Shift + 鼠标拖动</td><td>按住快捷键，然后把鼠标从区域的左上角拖至右下角，即可在选中区域的每一行末尾，出现光标。</td><td>很神奇的操作，较常用</td></tr><tr><td><strong>Option + Shift + i</strong></td><td><strong>Alt + Shift + I</strong></td><td>选中一堆文本后，按下快捷键，既可在<strong>每一行的末尾</strong>都出现一个光标。</td><td>很常用</td></tr></tbody></table><h3 id="_8、编程语言相关" tabindex="-1">8、编程语言相关 <a class="header-anchor" href="#_8、编程语言相关" aria-label="Permalink to &quot;8、编程语言相关&quot;">​</a></h3><table><thead><tr><th style="text-align:left;">Mac 快捷键</th><th style="text-align:left;">Win 快捷键</th><th style="text-align:left;">作用</th><th style="text-align:left;">备注</th></tr></thead><tbody><tr><td style="text-align:left;">Cmd + /</td><td style="text-align:left;">Ctrl + /</td><td style="text-align:left;">添加单行注释</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;"><strong>Option + Shift + F</strong></td><td style="text-align:left;">Alt + shift + F</td><td style="text-align:left;">代码格式化</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;">F2</td><td style="text-align:left;">F2</td><td style="text-align:left;">以重构的方式进行<strong>重命名</strong></td><td style="text-align:left;">改代码备</td></tr><tr><td style="text-align:left;">Ctrl + J</td><td style="text-align:left;"></td><td style="text-align:left;">将多行代码合并为一行</td><td style="text-align:left;">Win 用户可在命令面板搜索”合并行“</td></tr><tr><td style="text-align:left;">Cmd +</td><td style="text-align:left;"></td><td style="text-align:left;"></td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + U</td><td style="text-align:left;">Ctrl + U</td><td style="text-align:left;">将光标的移动回退到上一个位置</td><td style="text-align:left;">撤销光标的移动和选择</td></tr></tbody></table><h3 id="_9、搜索相关" tabindex="-1">9、搜索相关 <a class="header-anchor" href="#_9、搜索相关" aria-label="Permalink to &quot;9、搜索相关&quot;">​</a></h3><table><thead><tr><th style="text-align:left;">Mac 快捷键</th><th style="text-align:left;">Win 快捷键</th><th style="text-align:left;">作用</th><th style="text-align:left;">备注</th></tr></thead><tbody><tr><td style="text-align:left;"><strong>Cmd + Shift + F</strong></td><td style="text-align:left;"><strong>Ctrl + Shift +F</strong></td><td style="text-align:left;">全局搜索代码</td><td style="text-align:left;">很常用</td></tr><tr><td style="text-align:left;"><strong>Cmd + P</strong></td><td style="text-align:left;"><strong>Ctrl + P</strong></td><td style="text-align:left;">在当前的项目工程里，<strong>全局</strong>搜索文件名</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;">Cmd + F</td><td style="text-align:left;">Ctrl + F</td><td style="text-align:left;">在当前文件中搜索代码，光标在搜索框里</td><td style="text-align:left;"></td></tr><tr><td style="text-align:left;"><strong>Cmd + G</strong></td><td style="text-align:left;"><strong>F3</strong></td><td style="text-align:left;">在当前文件中搜索代码，光标仍停留在编辑器里</td><td style="text-align:left;">很巧妙</td></tr></tbody></table><h3 id="_10、自定义快捷键" tabindex="-1">10、自定义快捷键 <a class="header-anchor" href="#_10、自定义快捷键" aria-label="Permalink to &quot;10、自定义快捷键&quot;">​</a></h3><p>按住快捷键「Cmd + Shift + P」，弹出命令面板，在命令面板中输入“快捷键”，可以进入快捷键的设置。</p><p>当然，你也可以选择菜单栏「偏好设置 --&gt; 键盘快捷方式」，进入快捷键的设置：</p><p><img src="http://img.smyhvae.com/20190329_2120.png" alt=""></p><h3 id="_11、快捷键列表" tabindex="-1">11、快捷键列表 <a class="header-anchor" href="#_11、快捷键列表" aria-label="Permalink to &quot;11、快捷键列表&quot;">​</a></h3><p>你可以点击 VS Code 左下角的齿轮按钮，效果如下：</p><p><img src="http://img.smyhvae.com/20190418_1738.png" alt=""></p><p>上图中，在展开的菜单中选择「键盘快捷方式」，就可以查看和修改所有的快捷键列表了：</p><p><img src="http://img.smyhvae.com/20190418_1739_2.png" alt=""></p><h3 id="快捷键参考表-官方" tabindex="-1">快捷键参考表（官方） <a class="header-anchor" href="#快捷键参考表-官方" aria-label="Permalink to &quot;快捷键参考表（官方）&quot;">​</a></h3><p>VS Code 官网提供了 PDF 版本的键盘快捷键参考表，转需：</p><ul><li>Windows 版本：<a href="https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf" target="_blank" rel="noreferrer">https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf</a></li><li>Mac 版本：<a href="https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf" target="_blank" rel="noreferrer">https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf</a></li><li>Linux 版本：<a href="https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf" target="_blank" rel="noreferrer">https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf</a></li></ul><p>我们在 VS Code 软件里通过菜单栏「帮助--&gt;键盘快捷方式参考」也可以打开相应平台的快捷键大全（PDF 版本）。</p><h2 id="三、高端访问-命令面板的使用" tabindex="-1">三、高端访问：命令面板的使用 <a class="header-anchor" href="#三、高端访问-命令面板的使用" aria-label="Permalink to &quot;三、高端访问：命令面板的使用&quot;">​</a></h2><p>Mac 用户按住快捷键 <code>Cmd+Shift+P</code> （Windows 用户按住快捷键<code>Ctrl+Shift+P</code>），可以打开快速命令面板。效果如下：</p><p><img src="http://img.smyhvae.com/20190329_1750_2.png" alt=""></p><p>命令面板的作用是<strong>希望解放开发者的鼠标，让一些操作和配置可以直接通过键盘进行</strong>。如果让开发者记住所有的配置项在菜单的哪个位置是不现实的，而且有些命令并不在菜单中。</p><p>有了命令面板之后，如果你需要修改一些设置项，或者进行一些快捷操作，则可以通过「命令面板」来操作，效率会更高。接下来列举一些。</p><h3 id="_1、vs-code-设置为中文语言" tabindex="-1">1、VS Code 设置为中文语言 <a class="header-anchor" href="#_1、vs-code-设置为中文语言" aria-label="Permalink to &quot;1、VS Code 设置为中文语言&quot;">​</a></h3><p>Mac 用户按住快捷键 <code>Cmd+Shift+P</code> （Windows 用户按住快捷键<code>Ctrl+Shift+P</code>），打开命令面板。</p><p>在命令面板中，输入<code>Configure Display Language</code>，选择<code>Install additional languages</code>，然后安装插件<code>Chinese (Simplified) Language Pack for Visual Studio Code</code>即可。</p><p>或者，我们可以直接安装插件<code>Chinese (Simplified) Language Pack for Visual Studio Code</code>，是一样的。</p><p>安装完成后，重启 VS Code。</p><h3 id="_2、设置字体大小" tabindex="-1">2、设置字体大小 <a class="header-anchor" href="#_2、设置字体大小" aria-label="Permalink to &quot;2、设置字体大小&quot;">​</a></h3><p>在命令面板输入“字体”，可以进行字体的设置，效果如下：</p><p><img src="http://img.smyhvae.com/20190329_2110.png" alt=""></p><p>当然，你也可以在菜单栏，选择「首选项-设置-常用设置」，在这个设置项里修改字体大小。</p><h3 id="_3、快捷键设置" tabindex="-1">3、快捷键设置 <a class="header-anchor" href="#_3、快捷键设置" aria-label="Permalink to &quot;3、快捷键设置&quot;">​</a></h3><p>在命令面板输入“快捷键”，就可以进入快捷键的设置。</p><h3 id="_4、大小写转换" tabindex="-1">4、大小写转换 <a class="header-anchor" href="#_4、大小写转换" aria-label="Permalink to &quot;4、大小写转换&quot;">​</a></h3><p>选中文本后，在命令面板中输入<code>transfrom</code>，就可以修改文本的大小写了。</p><p><img src="http://img.smyhvae.com/20190414_1751.png" alt=""></p><h3 id="_5、使用命令行启动-vs-code" tabindex="-1">5、使用命令行启动 VS Code <a class="header-anchor" href="#_5、使用命令行启动-vs-code" aria-label="Permalink to &quot;5、使用命令行启动 VS Code&quot;">​</a></h3><p>（1）输入快捷键「Cmd + Shift + P 」，选择<code>install code command</code>：</p><p><img src="http://img.smyhvae.com/20191103_1327.png" alt=""></p><p>（2）使用命令行：</p><ul><li><code>code</code>命令：启动 VS Code 软件</li><li><code>code pathName/fileName</code>命令：通过 VS Code 软件打开指定目录/指定文件。</li></ul><p>备注：这种方法快捷简单，但是在电脑重启之后就失效了。稍后在第五段，我会介绍更常见的方法。</p><h3 id="_6、修改特定编程语言的设置项" tabindex="-1">6、修改特定编程语言的设置项 <a class="header-anchor" href="#_6、修改特定编程语言的设置项" aria-label="Permalink to &quot;6、修改特定编程语言的设置项&quot;">​</a></h3><p>输入快捷键「Cmd + Shift + P 」打开命令面板，然后输入并执行 <code>Configure Language Specific Settings</code>即可。</p><p><img src="https://img.smyhvae.com/20211012_1039.png" alt=""></p><h2 id="四、私人订制-vs-code-的常见配置" tabindex="-1">四、私人订制：VS Code 的常见配置 <a class="header-anchor" href="#四、私人订制-vs-code-的常见配置" aria-label="Permalink to &quot;四、私人订制：VS Code 的常见配置&quot;">​</a></h2><h3 id="_0、设置项介绍" tabindex="-1">0、设置项介绍 <a class="header-anchor" href="#_0、设置项介绍" aria-label="Permalink to &quot;0、设置项介绍&quot;">​</a></h3><p>在修改 VS Code 配置之前，我们需要知道，在哪里可以找到设置项的入口。</p><p><strong>方式 1</strong>：Mac 用户选择菜单栏「Code--&gt; 首选项--&gt;设置」，即可打开配置项：</p><p><img src="http://img.smyhvae.com/20210930_2009.png" alt=""></p><p><strong>方式 2</strong>：点击软件右下角的设置图标：</p><p><img src="http://img.smyhvae.com/20210930_2016.png" alt=""></p><p><img src="https://img.smyhvae.com/20211012_1017.png" alt=""></p><p>如上图所示，VS Code 提供两种不同范围的设置：</p><ul><li><strong>用户</strong>设置：全局生效。</li><li><strong>工作区</strong>设置：只针对当前项目生效。工作区设置会覆盖用户设置。适用于团队协作场景。工作区的设置文件是保存在当前项目根目录的<code>.vscode/settings.json</code>中，可以被提交到 Git 仓库，方便共享给项目组的其他成员。</li></ul><p>操作技巧：</p><p>（1）我们可以在设置面板的顶部搜索框，输入关键词，就能迅速定位到你想要的设置项。</p><p>（2）上图中，点击右上角的 icon，可以通过 json 文件的形式修改设置项。</p><h3 id="_1、修改主题" tabindex="-1">1、修改主题 <a class="header-anchor" href="#_1、修改主题" aria-label="Permalink to &quot;1、修改主题&quot;">​</a></h3><p>1）修改颜色主题：</p><p>选择菜单栏「Code --&gt; 首选项 --&gt; 颜色主题」：</p><p><img src="http://img.smyhvae.com/20210930_2017.png" alt=""></p><p>在弹出的对话框中，挑选你一个你喜欢的的颜色主题吧，或者安装其他颜色的主题：</p><p><img src="http://img.smyhvae.com/20211013_1018.png" alt="20211013_1018"></p><p>或者在设置项里搜索<code>Workbench: Color Theme</code>，进行修改。</p><p>2）修改文件图标的主题：</p><p>选择菜单栏「Code --&gt; 首选项 --&gt; 文件图标主题」：</p><p><img src="http://img.smyhvae.com/20211013_1015.png" alt="20211013_1015"></p><p>在弹出的对话框中，挑选你一个你喜欢的的主题吧，或者安装其他的主题：</p><p><img src="http://img.smyhvae.com/20211013_1019.png" alt="20211013_1019"></p><p>或者在设置项里搜索<code>Workbench: Icon Theme</code>，进行修改。</p><h3 id="_2、面包屑-breadcrumb-导航" tabindex="-1">2、面包屑（Breadcrumb）导航 <a class="header-anchor" href="#_2、面包屑-breadcrumb-导航" aria-label="Permalink to &quot;2、面包屑（Breadcrumb）导航&quot;">​</a></h3><p>打开 VS Code 的设置项，选择「用户设置 -&gt; 工作台 -&gt; 导航路径」，如下图所示：</p><p><img src="http://img.smyhvae.com/20191108_1550.png" alt=""></p><p>上图中，将红框部分打钩即可。</p><p>设置成功后，我们就可以查看到当前文件的「层级结构」，非常方便。如下图所示：</p><p><img src="http://img.smyhvae.com/20190415_2009.png" alt=""></p><p>有了这个面包屑导航，我们可以点击它，在任意目录、任意文件之间随意跳转。使用频繁非常高。</p><h3 id="_3、是否显示代码的行号" tabindex="-1">3、是否显示代码的行号 <a class="header-anchor" href="#_3、是否显示代码的行号" aria-label="Permalink to &quot;3、是否显示代码的行号&quot;">​</a></h3><p>VS Code 默认显示代码的行号。你可以在设置项里搜索 <code>editor.lineNumbers</code>修改设置，配置项如下：</p><p><img src="http://img.smyhvae.com/20190417_2140.png" alt=""></p><p>我建议保留这个设置项，无需修改。</p><h3 id="_4、右侧是否显示代码的缩略图" tabindex="-1">4、右侧是否显示代码的缩略图 <a class="header-anchor" href="#_4、右侧是否显示代码的缩略图" aria-label="Permalink to &quot;4、右侧是否显示代码的缩略图&quot;">​</a></h3><p>如果某个文件的代码量很大，缩略图就很有用了，可以预览全局，并在当前文件中快速跳转。</p><p>VS Code 会在代码的右侧，默认显示缩略图。你可以在设置项里搜索 <code>editor.minimap</code> 进行设置，配置项如下：</p><p><img src="http://img.smyhvae.com/20211012_1507.png" alt=""></p><p>上面这张图，你仔细琢磨下会发现，中文翻译十分精准。</p><h3 id="_5、将当前行代码高亮显示-更改光标所在行的背景色" tabindex="-1">5、将当前行代码高亮显示（更改光标所在行的背景色） <a class="header-anchor" href="#_5、将当前行代码高亮显示-更改光标所在行的背景色" aria-label="Permalink to &quot;5、将当前行代码高亮显示（更改光标所在行的背景色）&quot;">​</a></h3><p>当我们把光标放在某一行时，这一行的背景色并没有发生变化。如果想<strong>高亮显示</strong>当前行的代码，需要设置两步：</p><p>（1）在设置项里搜索<code>editor.renderLineHighlight</code>，将选项值设置为<code>all</code>或者<code>line</code>。</p><p>（2）在设置项里增加如下内容：</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">workbench.colorCustomizations</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;">: </span><span style="color:#89DDFF;">{</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">editor.lineHighlightBackground</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">#00000090</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">editor.lineHighlightBorder</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">#ffffff30</span><span style="color:#89DDFF;">&quot;</span></span>
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><p>上方代码，第一行代码的意思是：修改光标所在行的背景色（背景色设置为全黑，不透明度 90%）；第二行代码的意思是：修改光标所在行的边框色。</p><h3 id="_6、改完代码后立即自动保存" tabindex="-1">6、改完代码后立即自动保存 <a class="header-anchor" href="#_6、改完代码后立即自动保存" aria-label="Permalink to &quot;6、改完代码后立即自动保存&quot;">​</a></h3><p><strong>方式一</strong>：</p><p>改完代码后，默认不会自动保存。你可以在设置项里搜索<code>files.autoSave</code>，修改参数值为<code>afterDelay</code> ，即可自动保存。如下：</p><p><img src="https://img.smyhvae.com/20211012_2000.png" alt=""></p><p>files.autoSave 的参数值有以下几种：</p><ul><li>off（默认值）：不自动保存。</li><li>afterDelay（建议配置）：文件修改超过一定时间（默认 1 秒）后，就自动保存。</li><li>onFocusChange：当前编辑器失去焦点时，则自动保存。如果我们将配置项修改为<code>onFocusChange</code>之后，那么，当光标离开该文件后，这个文件就会自动保存了。</li><li>onWindowChange：VS Code 软件失去焦点时，则自动保存。</li></ul><p><strong>方式二</strong>：</p><p>当然，你也可以直接在菜单栏选择「文件-自动保存」。勾选后，当你写完代码后，文件会立即实时保存。</p><h3 id="_7、热退出" tabindex="-1">7、热退出 <a class="header-anchor" href="#_7、热退出" aria-label="Permalink to &quot;7、热退出&quot;">​</a></h3><p>当 VS Code 退出后，它可以记住未保存的文件。如果你希望达到这种效果，那么，你需要先将设置项<code>files.hotExit</code>的值改为 <code>onExitAndWindowClose</code>。这个配置项要不要改，看你个人需要。比如我自己平时设置的值是<code>onExit</code>。</p><p><img src="http://img.smyhvae.com/20211012_2014.png" alt="20211012_2014"></p><h3 id="_8、保存代码后-是否立即格式化" tabindex="-1">8、保存代码后，是否立即格式化 <a class="header-anchor" href="#_8、保存代码后-是否立即格式化" aria-label="Permalink to &quot;8、保存代码后，是否立即格式化&quot;">​</a></h3><p>保存代码后，默认<strong>不会立即</strong>进行代码的格式化。你可以在设置项里搜索<code>editor.formatOnSave</code>查看该配置项：</p><p><img src="http://img.smyhvae.com/20190417_2213.png" alt=""></p><p>我觉得这个配置项保持默认就好，不用打钩。</p><h3 id="_9、自动格式化粘贴的内容" tabindex="-1">9、自动格式化粘贴的内容 <a class="header-anchor" href="#_9、自动格式化粘贴的内容" aria-label="Permalink to &quot;9、自动格式化粘贴的内容&quot;">​</a></h3><p>在设置项里搜索 <code>editor.formatOnPaste</code>，将设置项改为<code>true</code>：</p><p><img src="https://img.smyhvae.com/20211012_1049.png" alt="20211012_1049"></p><h3 id="_10、设置字体大小" tabindex="-1">10、设置字体大小 <a class="header-anchor" href="#_10、设置字体大小" aria-label="Permalink to &quot;10、设置字体大小&quot;">​</a></h3><p>在设置项里搜索<code>fontSize</code>，然后根据需要设置各种模块的字体大小：</p><p><img src="http://img.smyhvae.com/20211012_1053.png" alt="20211012_1053"></p><h3 id="_11、空格-or-制表符" tabindex="-1">11、空格 or 制表符 <a class="header-anchor" href="#_11、空格-or-制表符" aria-label="Permalink to &quot;11、空格 or 制表符&quot;">​</a></h3><p>VS Code 会根据你所打开的文件来决定该使用空格还是制表。也就是说，如果你的项目中使用的都是制表符，那么，当你在写新的代码时，按下 tab 键后，编辑器就会识别成制表符。</p><p>（1）建议的设置项如下：</p><ul><li><strong>editor.detectIndentation</strong>：自动检测（默认开启）。建议把这个配置项修改为 false，截图如下：</li></ul><p><img src="https://img.smyhvae.com/20211012_1139.png" alt="20211012_1139"></p><p>这样做，是为了取消系统的自动缩进，建议自己手动格式化比较好。 参考链接：<a href="https://www.yisu.com/zixun/327399.html" target="_blank" rel="noreferrer">https://www.yisu.com/zixun/327399.html</a></p><ul><li><strong>editor.insertSpaces</strong>：按 Tab 键时插入空格（默认值为 true）。截图如下：</li></ul><p><img src="http://img.smyhvae.com/20190417_2207.png" alt=""></p><ul><li><strong>editor.tabSize</strong>：一个制表符默认等于四个空格。截图如下：</li></ul><p><img src="http://img.smyhvae.com/20190417_2209.png" alt=""></p><p>（2）状态栏也会显示当前的缩进值。点击状态栏，可以直接修改 tabSize 缩进值：</p><p><img src="http://img.smyhvae.com/20211009_1610.png" alt=""></p><p>（3）另外，我们还可以安装 prettier 插件，设置代码在格式化时默认缩进值。prettier 是做代码格式化的最常见工具。</p><p><img src="https://img.smyhvae.com/20211009_1637.png" alt=""></p><p>（4）去掉每一行末尾的空格。在设置项里搜索<code>空格</code>或者<code>&quot;files.trimTrailingWhitespace&quot;</code>，将值设置为 true：</p><p><img src="http://img.smyhvae.com/20211012_1231.png" alt="20211012_1231"></p><p>一般来说，每一行代码末尾的空格是多余的，所以建议去掉。</p><h3 id="_12、直观地显示代码里的空格和缩进-✨" tabindex="-1">12、直观地显示代码里的空格和缩进 ✨ <a class="header-anchor" href="#_12、直观地显示代码里的空格和缩进-✨" aria-label="Permalink to &quot;12、直观地显示代码里的空格和缩进 ✨&quot;">​</a></h3><p>代码里如果有缩进或者空格，肉眼是看不出来的，但是我们可以修改配置项，把它揪出来。</p><p>在配置项里搜索<code>editor.renderWhitespace</code>，修改为<code>all</code>：</p><p><img src="http://img.smyhvae.com/20211012_1150.png" alt="20211012_1150"></p><p>修改之后，代码里的空格、缩进的展示效果如下：</p><p><img src="http://img.smyhvae.com/20211012_1258.png" alt="20211012_1258"></p><p>看到了没？哪里有空格、哪里是缩进，全都一目了然。</p><h3 id="_13、新建文件后的默认文件类型" tabindex="-1">13、新建文件后的默认文件类型 <a class="header-anchor" href="#_13、新建文件后的默认文件类型" aria-label="Permalink to &quot;13、新建文件后的默认文件类型&quot;">​</a></h3><p>当我们按下快捷键「Cmd + N」新建文件时，VS Code 默认无法识别这个文件到底是什么类型的，因此也就无法识别相应的语法高亮。</p><p>如果你想修改默认的文件类型，可以在设置项里搜索<code>files.defaultLanguage</code>，设置项如下：</p><p><img src="http://img.smyhvae.com/20190417_2221.png" alt=""></p><p>上图中的红框部分，填入你期望的默认文件类型。我填的是<code>html</code>类型，你也可以填写成 <code>javascript</code> 或者 <code>markdown</code>，或者其他的语言类型。</p><h3 id="_14、删除文件时-是否弹出确认框" tabindex="-1">14、删除文件时，是否弹出确认框 <a class="header-anchor" href="#_14、删除文件时-是否弹出确认框" aria-label="Permalink to &quot;14、删除文件时，是否弹出确认框&quot;">​</a></h3><p>当我们在 VS Code 中删除文件时，默认会弹出确认框。如果你想修改设置，可以在设置项里搜索<code>xplorer.confirmDelete</code>。截图如下：</p><p><img src="http://img.smyhvae.com/20190418_1758.png" alt=""></p><p>我建议这个设置项保持默认的打钩就好，不用修改。删除文件前的弹窗提示，也是为了安全考虑，万一手贱不小心删了呢？</p><h3 id="_15、在新窗口打开文件-文件夹" tabindex="-1">15、在新窗口打开文件/文件夹 <a class="header-anchor" href="#_15、在新窗口打开文件-文件夹" aria-label="Permalink to &quot;15、在新窗口打开文件/文件夹&quot;">​</a></h3><p>通过 <code>window.openFoldersInNewWindow</code>（默认值为 off）和<code>window.openFilesInNewWindow</code>（默认值为 default），可以配置在打开文件夹、打开文件时，是否开启一个新的窗口。我个人建议，把这两个配置项都设置为 on，避免旧的窗口被覆盖：</p><p><img src="http://img.smyhvae.com/20211012_1700.png" alt=""></p><p>补充知识—— <code>window.restoreWindows</code>可以用来配置 如何恢复之前的会话窗口。涉及到的场景是：你把 VS Code 关闭了，然后又打开了，是否要展示之前打开过的文件、文件夹？参数值有以下几种：</p><ul><li>one（默认配置）：只会重新打开上一次回话中最后操作的那一个窗口。</li><li>none：打开一个空的窗口，不包含任何文件、文件夹。</li><li>all（建议配置）：恢复上一次会话中的所有窗口。</li><li>folders：恢复上一次会话中包含文件夹的窗口。</li></ul><p><img src="http://img.smyhvae.com/20211012_1704.png" alt="20211012_1704"></p><blockquote><p>接下来，我们来讲一些更高级的操作。</p></blockquote><h2 id="五、纵享丝滑-常见操作和使用技巧" tabindex="-1">五、纵享丝滑：常见操作和使用技巧 <a class="header-anchor" href="#五、纵享丝滑-常见操作和使用技巧" aria-label="Permalink to &quot;五、纵享丝滑：常见操作和使用技巧&quot;">​</a></h2><h3 id="_1、快速生成-html-骨架" tabindex="-1">1、快速生成 HTML 骨架 <a class="header-anchor" href="#_1、快速生成-html-骨架" aria-label="Permalink to &quot;1、快速生成 HTML 骨架&quot;">​</a></h3><p>先新建一个空的 html 文件，然后通过以下方式，可以快速生成 html 骨架。</p><p><strong>方式 1</strong>：输入<code>!</code>，然后按下<code>enter</code>键，即可生成 html 骨架。如下图：</p><p><img src="https://img.smyhvae.com/20210623-2115.gif" alt=""></p><p><strong>方式 2</strong>：输入<code>html:5</code>，然后按住 <code>Tab</code>键，即可生成 html 骨架。</p><p>生成的骨架，内容如下：</p><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">&lt;!</span><span style="color:#F07178;">DOCTYPE</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">html</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">html</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">lang</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">en</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">head</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">meta</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">charset</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">UTF-8</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;"> /&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">meta</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">http-equiv</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">X-UA-Compatible</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">content</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">IE=edge</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;"> /&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">meta</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">name</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">viewport</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;"> </span><span style="color:#C792EA;">content</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">width=device-width, initial-scale=1.0</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;"> /&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">title</span><span style="color:#89DDFF;">&gt;</span><span style="color:#A6ACCD;">Document</span><span style="color:#89DDFF;">&lt;/</span><span style="color:#F07178;">title</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;/</span><span style="color:#F07178;">head</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">body</span><span style="color:#89DDFF;">&gt;&lt;/</span><span style="color:#F07178;">body</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#89DDFF;">&lt;/</span><span style="color:#F07178;">html</span><span style="color:#89DDFF;">&gt;</span></span></code></pre></div><p>有了上面的 html 骨架之后，我们就可以快乐地在里面插入 CSS 代码和 JS 代码。</p><h3 id="_2、并排编辑-左右-上下-显示多个编辑器窗口-copy-代码利器" tabindex="-1">2、并排编辑：左右（上下）显示多个编辑器窗口（copy 代码利器） <a class="header-anchor" href="#_2、并排编辑-左右-上下-显示多个编辑器窗口-copy-代码利器" aria-label="Permalink to &quot;2、并排编辑：左右（上下）显示多个编辑器窗口（copy 代码利器）&quot;">​</a></h3><blockquote><p>并排编辑是所有的编辑操作中最常用的一个技巧，十分有用。比如我们在开发一个项目时，可能需要同时打开 HTML 文件和 CSS 文件，很常见。</p></blockquote><p>Mac 用户按住快捷键 <code>Cmd + \</code>， Windows 用户按住快捷键<code>Ctrl + \</code>，即可同时打开多个编辑器窗口，进行并排编辑。效果如下：</p><p><img src="http://img.smyhvae.com/20200619_0030.gif" alt=""></p><p>按快捷键「Cmd + 1 」切换到左边的窗口，按快捷键「Cmd + 2 」切换到右边的窗口，以此类推。随时随地，想切就切。</p><p>学会了这一招，以后 copy 代码的时候，leader 再也不用担心我抄得慢了，一天工资到手。</p><hr><p>当然，使用快捷键<code>Cmd + \</code>只是其中一种方式，我们还有很多种方式打开并行编辑。我们来做一个汇总。</p><p>如果你已经打开了一个编辑器，那么可以通过以下几种方式在另一侧打开另一个编辑器：（按照使用频率，从高到低排序）</p><ul><li>使用快捷键<code>Cmd + \</code>将编辑器一分为二。</li><li>使用快捷键<code>Cmd + P</code>调出文件列表，选择要打开的文件，然后按下 <code>Cmd + Enter</code>快捷键。【重要】</li><li>按住 Option 键的同时，单击资源管理器的文件（Windows 用户是按 Alt 键）。</li><li>点击编辑器右上角的 <code>Split Editor</code>按钮。</li><li>选择菜单栏「查看--&gt; 编辑器布局」，然后选择你具体想要的布局，如下图所示：</li></ul><p><img src="http://img.smyhvae.com/20211012_1451.png" alt="20211012_1451"></p><ul><li>通过拖拽，把当前文件移动到任意一侧。</li></ul><p>补充知识：通过配置项<code>worbench.editor.OpenSideBySideDirection</code>可以控制编辑器在并排打开时出现的默认位置（默认值为 right，你也可以根据需要改为 down）。如下图所示：</p><p><img src="http://img.smyhvae.com/20211012_1455.png" alt="20211012_1455"></p><h3 id="_3、从终端-code-命令启动-vs-code-mac-电脑" tabindex="-1">3、从终端 code 命令启动 VS Code（Mac 电脑） <a class="header-anchor" href="#_3、从终端-code-命令启动-vs-code-mac-电脑" aria-label="Permalink to &quot;3、从终端 code 命令启动 VS Code（Mac 电脑）&quot;">​</a></h3><p>在终端输入<code>code</code>或者输入 <code>code + 指定项目的目录</code>，就可以启动 VS Code，十分便捷。即：</p><ul><li><code>code</code> 命令：启动 VS Code 软件。</li><li><code>code pathName/fileName</code> 命令：通过 VS Code 软件打开指定目录/指定文件。</li></ul><p>为了达到目的，我们需要先将 VS Code 的软件安装路径添加到环境变量，一劳永逸。具体操作如下：</p><p>（1）打开 <code>bash_profile</code>文件：</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#82AAFF;">cd</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">~</span></span>
<span class="line"><span style="color:#FFCB6B;">vim</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">./bash_profile</span></span></code></pre></div><p>（2）在 bash_profile 中添加如下内容：</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;"># 从终端启动VS Code，并设置vscode启动的命令别名</span></span>
<span class="line"><span style="color:#C792EA;">alias</span><span style="color:#A6ACCD;"> code</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code</span><span style="color:#89DDFF;">&quot;</span></span></code></pre></div><p>注意，由于<code>Visual Studio Code.app</code>这个路径里有空格，所以需要在空格前面加上反斜杠<code>\</code>。</p><p>（3）重启环境变量的配置：</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;"># 重启</span></span>
<span class="line"><span style="color:#A6ACCD;">source ~/.bash_profile</span></span></code></pre></div><p>大功告成。</p><p>改完之后，如果没生效，那你把 <code>bash_profile</code>文件 换成 <code>zshrc</code>文件试试。</p><p>参考链接：</p><ul><li><a href="https://blog.csdn.net/logan_LG/article/details/106800904" target="_blank" rel="noreferrer">mac 通过终端 code 命令打开 vscode</a></li></ul><h3 id="_3、从终端-code-命令启动-vs-code-windows-电脑" tabindex="-1">3、从终端 code 命令启动 VS Code（Windows 电脑） <a class="header-anchor" href="#_3、从终端-code-命令启动-vs-code-windows-电脑" aria-label="Permalink to &quot;3、从终端 code 命令启动 VS Code（Windows 电脑）&quot;">​</a></h3><p>在终端输入<code>code</code>或者输入 <code>code + 指定项目的目录</code>，就可以启动 VS Code，十分便捷。即：</p><ul><li><code>code</code> 命令：启动 VS Code 软件。</li><li><code>code pathName/fileName</code> 命令：通过 VS Code 软件打开指定目录/指定文件。</li></ul><p>为了达到目的，我们需要先将 VS Code 的软件安装路径添加到环境变量，一劳永逸。具体操作如下：</p><p>（1）打开 VS Code 的安装位置，进入 bin 文件夹，复制路径。比如：<code>D:\Microsoft VS Code\bin</code>。</p><p>（2）回到桌面，右键我的电脑--&gt;高级系统设置--&gt;环境变量--&gt;编辑 path 值，在原来的 path 后面，追加内容<code>;D:\Microsoft VS Code\bin</code>（即英文的分号+VS Code 的 bin 路径)</p><p>（3）重启电脑，大功告成。</p><p>改完之后，如果没生效，那八成是因为你填的 path 值有问题。</p><p>参考链接：</p><ul><li><a href="https://www.cnblogs.com/zyl-Tara/p/10642704.html" target="_blank" rel="noreferrer">windows 使用 code . 命令打开 vscode</a></li></ul><h3 id="_4、在当前文件中搜索" tabindex="-1">4、在当前文件中搜索 <a class="header-anchor" href="#_4、在当前文件中搜索" aria-label="Permalink to &quot;4、在当前文件中搜索&quot;">​</a></h3><p>在上面的快捷键列表中，我们已经知道如下快捷键：</p><ul><li><p>Cmd + F（Win 用户是 Ctrl + F）：在当前文件中搜索，光标在搜索框里</p></li><li><p>Cmd + G（Win 用户是 F3）：在当前文件中搜索，光标仍停留在编辑器里</p></li></ul><p>多个搜索结果出来之后，按下 Enter 键之后跳转到下一个搜索结果，按下 Shift + Enter 键之后跳转到上一个搜索结果。</p><p>另外，你可能会注意到，搜索框里有很多按钮，每个按钮都对应着不同的功能，如下图所示：</p><p><img src="http://img.smyhvae.com/20190415_2052.png" alt=""></p><p>上图中，你可以通过「Tab」键和「Shift + Tab」键在输入框和替换框之间进行切换。</p><p>「在选定内容中查找」这个功能还是比较实用的。你也可以在设置项里搜索 <code>editor.find.autoFindInSelection</code>，勾选该设置项后，那么，当你选中指定内容后，然后按住「Cmd + F」，就可以<strong>自动</strong>只在这些内容里进行查找。该设置项如下图所示：</p><p><img src="http://img.smyhvae.com/20191108_1655.png" alt=""></p><h3 id="_5、全局搜索" tabindex="-1">5、全局搜索 <a class="header-anchor" href="#_5、全局搜索" aria-label="Permalink to &quot;5、全局搜索&quot;">​</a></h3><p>在上面的快捷键列表中，我们已经知道如下快捷键：</p><ul><li>Cmd + Shift + F（Win 用户是 Ctrl + Shift +F）：在全局的文件夹中进行搜索。效果如下：</li></ul><p><img src="http://img.smyhvae.com/20211012_1548.png" alt="20211012_1548"></p><p>上图中，你可以点击<strong>红框</strong>部分，展开更多的配置项。然后点击<strong>红圈</strong>部分，进行过滤搜索。注意，第二个红圈那里会经常用到，它可以在搜索时过滤掉 <code>.git</code>、<code>.node_modules</code>等忽略文件。</p><p>上图中，我们还可以点击“在编辑器中打开”，在一个单独的文件中聚合展示搜索结果：</p><p><img src="https://img.smyhvae.com/20211012_1609.png" alt=""></p><h3 id="_6、文件名-文件夹的搜索" tabindex="-1">6、文件名/文件夹的搜索 <a class="header-anchor" href="#_6、文件名-文件夹的搜索" aria-label="Permalink to &quot;6、文件名/文件夹的搜索&quot;">​</a></h3><p>前面的快捷键那一段我们讲过，通过 「Cmd + P」可以快速搜索并打开<strong>文件</strong>/文件夹。这种方式，一般用于快速打开最近编辑过的文件。</p><p>其实还有一种很巧妙的方式，可以在整个项目里，既能搜到文件，也能搜到<strong>文件夹</strong>。这种方式，常用于<strong>过滤项目的目录</strong>。操作方法很简单：</p><blockquote><p>直接在文件资源管理器输入关键字就行。搜索结果会自动出现；使用方向键进行上下移动，可以在搜索的文件和文件夹之间进行跳转。</p><p>另外，右上角会看到一个过滤器，点击下图中的红圈部分，则只显示匹配的文件和文件夹。</p></blockquote><p><img src="http://img.smyhvae.com/20211012_1616.png" alt="20211012_1616"></p><p>当然，这招也有一点不足：不能搜中文。</p><h3 id="_7、大纲视图" tabindex="-1">7、大纲视图 <a class="header-anchor" href="#_7、大纲视图" aria-label="Permalink to &quot;7、大纲视图&quot;">​</a></h3><p>如下图所示，大纲视图可以展示当前代码的方法结构、文件的目录结构：</p><p><img src="http://img.smyhvae.com/20211012_1628.png" alt="20211012_1628"></p><p><img src="http://img.smyhvae.com/20211012_1636.png" alt="20211012_1636"></p><h3 id="_8、文件对比" tabindex="-1">8、文件对比 <a class="header-anchor" href="#_8、文件对比" aria-label="Permalink to &quot;8、文件对比&quot;">​</a></h3><p>VS Code 默认支持<strong>对比两个文件的内容</strong>。选中两个文件，然后右键选择「将已选项进行比较」即可，效果如下：</p><p><img src="http://img.smyhvae.com/20190329_1756.png" alt=""></p><p>VS Code 自带的对比功能并不够强大，我们可以安装插件<code>compareit</code>，进行更丰富的对比。比如说，安装完插件<code>compareit</code>之后，我们可以将「当前文件」与「剪切板」里的内容进行对比：</p><p><img src="http://img.smyhvae.com/20190329_1757.png" alt=""></p><p>如果你安装了 GitLens 插件，还可以将两个 git 分支的代码进行比对，非常完美。</p><h3 id="_9、查找某个函数在哪些地方被调用了" tabindex="-1">9、查找某个函数在哪些地方被调用了 <a class="header-anchor" href="#_9、查找某个函数在哪些地方被调用了" aria-label="Permalink to &quot;9、查找某个函数在哪些地方被调用了&quot;">​</a></h3><p>比如我已经在<code>a.js</code>文件里调用了 <code>foo()</code>函数。那么，如果我想知道<code>foo()</code>函数在其他文件中是否也被调用了，该怎么做呢？</p><p>做法如下：在 <code>a.js</code> 文件里，选中<code>foo()</code>函数（或者将光标放置在<code>foo()</code>函数上），然后按住快捷键「Shift + F12」，就能看到 <code>foo()</code>函数在哪些地方被调用了，比较实用。</p><h3 id="_10、鼠标操作" tabindex="-1">10、鼠标操作 <a class="header-anchor" href="#_10、鼠标操作" aria-label="Permalink to &quot;10、鼠标操作&quot;">​</a></h3><ul><li><p>在当前行的位置，鼠标三击，可以选中当前行。</p></li><li><p>用鼠标单击文件的<strong>行号</strong>，可以选中当前行。</p></li><li><p>在某个<strong>行号</strong>的位置，<strong>上下移动鼠标，可以选中多行</strong>。</p></li></ul><h3 id="_11、重构" tabindex="-1">11、重构 <a class="header-anchor" href="#_11、重构" aria-label="Permalink to &quot;11、重构&quot;">​</a></h3><p>重构分很多种，我们来举几个例子。</p><p><strong>命名重构</strong>：</p><p>当我们尝试去修改某个函数（或者变量名）时，我们可以把光标放在上面，然后按下「F2」键，那么，这个函数（或者变量名）出现的地方都会被修改。</p><p><strong>方法重构</strong>：</p><p>选中某一段代码，这个时候，代码的左侧会出现一个「灯泡图标」，点击这个图标，就可以把这段代码提取为一个单独的函数。</p><h3 id="_12-终端配置" tabindex="-1">12：终端配置 <a class="header-anchor" href="#_12-终端配置" aria-label="Permalink to &quot;12：终端配置&quot;">​</a></h3><p>VS Code 软件自带了终端，但我个人认为不是很好用，而且 VS Code 软件关了之后，终端也没了。建议大家使用其他的终端软件，专业的事情交给专业的人做。</p><ul><li>Windows 平台的终端：推荐 PowerShell 软件。远程终端推荐 xshell 软件。</li><li>Mac 平台的终端：推荐 <a href="https://iterm2.com/" target="_blank" rel="noreferrer">iTerm2 </a>。 iTerm2 是 Mac 平台最好用的终端软件，没有之一。</li></ul><p><strong>右键行为</strong>：</p><blockquote><p>在终端上，单击右键所产生的行为在不同的系统里是不同的。</p></blockquote><ul><li>Windows：如果有<strong>选定</strong>文本，则复制当前文本；如果没有选定文本，则粘贴。</li><li>macOS：选中光标所在位置的单词，并显示右键菜单。</li><li>Linux：显示右键菜单。</li></ul><h3 id="_13、git-版本管理" tabindex="-1">13、Git 版本管理 <a class="header-anchor" href="#_13、git-版本管理" aria-label="Permalink to &quot;13、Git 版本管理&quot;">​</a></h3><p>在 VS Code 中使用 Git 之前，需要你先安装 Git 环境。</p><p>VS Code 自带了 Git 版本管理的功能，如下图所示：</p><p><img src="http://img.smyhvae.com/20190418_1850.png" alt=""></p><p>上图中，我们可以在这里进行常见的 git 命令操作。如果你还不熟悉 <strong>Git 版本管理</strong>，可以先去补补课。</p><p>我自己用的最多的功能是<strong>diff 代码</strong>和<strong>合并冲突</strong>，自从用上了 VS Code 的这两个功能，简直离不开它。</p><p>我们先来看看 diff 代码的效果：</p><p><img src="https://img.smyhvae.com/20211013_1411.png" alt="20211013_1411"></p><p>上图中，点击右上角的<code>...</code>，然后点击<code>内联视图</code>，则可以换一种视图 diff 代码：</p><p><img src="https://img.smyhvae.com/20211013_1415.png" alt=""></p><p><strong>Git 状态栏</strong>：</p><p><img src="http://img.smyhvae.com/20211013_1421.png" alt="20211013_1421"></p><p>在 VS Code 的左下角会显示 Git 状态栏。如果当前代码仓库配置了远程仓库，那么“同步更改”会显示以下信息：</p><ul><li>左边的数字：表示远程分支比本地分支多了 XX 个 Git commit。</li><li>右边的数字：表示本地分支比远程分支多了 XX 个 Git commit。</li></ul><p>点击“同步更改”按钮，会拉取（pull）远程分支到本地分支，并推送（push）本地的 Git commit 到远程分支。</p><p>如果当前代码仓库没有配置远程仓库，则会显示“发布更改”的按钮。点击“发布更改”按钮，会把当前分支 push 到远程仓库。</p><hr><p>另外，我建议安装插件<code>GitLens</code>搭配使用，它是 VS Code 中我最推荐的一个插件，简直是 Git 神器，码农必备。</p><p>我还要补充一句：</p><p>有人说，高手都是直接用命令行操作 Git。然而，根据我多年的经验来看，如果你的代码仓库需要管理的分支特别多，与团队的其他成员需要经常协作，那么，我建议你<strong>优先使用</strong> GUI 图形化工具来操作 Git，避免出错。</p><p>我推荐的 GUI 版的 Git 工具有：</p><ul><li><a href="https://www.git-tower.com/" target="_blank" rel="noreferrer">Tower</a></li><li><a href="https://www.sourcetreeapp.com/" target="_blank" rel="noreferrer">Sourcetree</a></li><li><a href="https://www.gitkraken.com/" target="_blank" rel="noreferrer">GitKraken</a></li></ul><h3 id="_14、将工作区放大-缩小" tabindex="-1">14、将工作区放大/缩小 <a class="header-anchor" href="#_14、将工作区放大-缩小" aria-label="Permalink to &quot;14、将工作区放大/缩小&quot;">​</a></h3><p>我们在上面的设置项里修改字体大小后，仅仅只是修改了代码的字体大小。</p><p>如果你想要缩放整个工作区（包括代码的字体、左侧导航栏的字体等），可以按下快捷键「<strong>cmd +/-</strong>」。windows 用户是按下「ctrl +/-」</p><p><strong>当我们在投影仪上给别人演示代码的时候，这一招十分管用</strong>。</p><p>如果你想恢复默认的工作区大小，可以在命令面板输入<code>重置缩放</code>（英文是<code>reset zoom</code>）</p><p>f### 11、创建多层子文件夹</p><p>我们可以在新建文件夹的时候，如果直接输入<code>aa/bb/cc</code>，比如：</p><p><img src="http://img.smyhvae.com/20190418_2022.png" alt=""></p><p>那么，就可以创建多层子文件夹，效果如下：</p><p><img src="http://img.smyhvae.com/20190418_2023.png" alt=""></p><h3 id="_15、-vscode-文件夹的作用" tabindex="-1">15、<code>.vscode</code> 文件夹的作用 <a class="header-anchor" href="#_15、-vscode-文件夹的作用" aria-label="Permalink to &quot;15、`.vscode` 文件夹的作用&quot;">​</a></h3><p>为了统一团队的 vscode 配置，我们可以在项目的根目录下建立<code>.vscode</code>目录，在里面放置一些配置内容，比如：</p><ul><li><p><code>settings.json</code>：工作空间设置、代码格式化配置、插件配置。</p></li><li><p><code>sftp.json</code>：ftp 文件传输的配置。</p></li></ul><p><code>.vscode</code>目录里的配置只针对当前项目范围内生效。将<code>.vscode</code>提交到代码仓库，大家统一配置时，会非常方便。</p><h3 id="_16、自带终端" tabindex="-1">16、自带终端 <a class="header-anchor" href="#_16、自带终端" aria-label="Permalink to &quot;16、自带终端&quot;">​</a></h3><p>我们可以按下「Ctrl + `」打开 VS Code 自带的终端。我认为内置终端并没有那么好用，我更建议你使用第三方的终端 <strong>item2</strong>。</p><h3 id="_17、markdown-语法支持" tabindex="-1">17、markdown 语法支持 <a class="header-anchor" href="#_17、markdown-语法支持" aria-label="Permalink to &quot;17、markdown 语法支持&quot;">​</a></h3><p>VS Code 自带 markdown 语法高亮。也就是说，如果你是用 markdown 格式写文章，则完全可以用 VS Code 进行写作。</p><p>写完 md 文件之后，你可以点击右上角的按钮进行预览，如下图所示：</p><p><img src="http://img.smyhvae.com/20190418_1907.png" alt=""></p><p>我一般是安装「Markdown Preview Github Styling」插件，以 GitHub 风格预览 Markdown 样式。样式十分简洁美观。</p><p>你也可以在控制面板输入<code>Markdown: 打开预览</code>，直接全屏预览 markdown 文件。</p><h3 id="_18、emmet-in-vs-code" tabindex="-1">18、Emmet in VS Code <a class="header-anchor" href="#_18、emmet-in-vs-code" aria-label="Permalink to &quot;18、Emmet in VS Code&quot;">​</a></h3><p><code>Emmet</code>可以极大的提高 html 和 css 的编写效率，它提供了一种非常简练的语法规则。</p><p>举个例子，我们在编辑器中输入缩写代码：<code>ul&gt;li*6</code> ，然后按下 Tab 键，即可得到如下代码片段：</p><div class="language-html"><button title="Copy Code" class="copy"></button><span class="lang">html</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">ul</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;&lt;/</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;&lt;/</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;&lt;/</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;&lt;/</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;&lt;/</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&lt;</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;&lt;/</span><span style="color:#F07178;">li</span><span style="color:#89DDFF;">&gt;</span></span>
<span class="line"><span style="color:#89DDFF;">&lt;/</span><span style="color:#F07178;">ul</span><span style="color:#89DDFF;">&gt;</span></span></code></pre></div><p>VS Code 默认支持 Emmet。更多 Emmet 语法规则，可以自行查阅。</p><h3 id="_19、修改字体-使用「fira-code」字体" tabindex="-1">19、修改字体，使用「Fira Code」字体 <a class="header-anchor" href="#_19、修改字体-使用「fira-code」字体" aria-label="Permalink to &quot;19、修改字体，使用「Fira Code」字体&quot;">​</a></h3><p>这款字体很漂亮，很适合用来写代码：</p><p><img src="https://img.smyhvae.com/20200516_1633-2.png" alt=""></p><p>安装步骤如下：</p><p>（1）进入 <a href="https://github.com/tonsky/FiraCode" target="_blank" rel="noreferrer">https://github.com/tonsky/FiraCode</a> 网站，下载并安装「Fira Code」字体。</p><p>（2）打开 VS Code 的「设置」，搜索<code>font</code>，修改相关配置为如下内容：</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">editor.fontFamily</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;">: </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">&#39;Fira Code&#39;,Menlo, Monaco, &#39;Courier New&#39;, monospace</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;">, </span><span style="color:#676E95;font-style:italic;">// 设置字体显示</span></span>
<span class="line"><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">editor.fontLigatures</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;">: </span><span style="color:#89DDFF;">false</span><span style="color:#A6ACCD;">,</span><span style="color:#676E95;font-style:italic;">//控制是否启用字体连字，true启用，false不启用</span></span></code></pre></div><p>上方的第二行配置，取决于个人习惯，我是直接设置为<code>&quot;editor.fontLigatures&quot;: null</code>，因为我不太习惯连字。</p><h3 id="_20、代码格式化" tabindex="-1">20、代码格式化 <a class="header-anchor" href="#_20、代码格式化" aria-label="Permalink to &quot;20、代码格式化&quot;">​</a></h3><p>VS Code 默认对 JavaScript、TypeScript、JSON、HTML 提供了开箱即用的代码格式化支持。其他语言则需要先安装相应的插件才能支持。</p><p>另外，我们还可以安装 Prettier 插件进行<strong>更精细</strong>的代码格式化。下一段将插件的时候，会讲解。</p><h3 id="_21、智能提示-intellisense" tabindex="-1">21、智能提示 IntelliSense <a class="header-anchor" href="#_21、智能提示-intellisense" aria-label="Permalink to &quot;21、智能提示 IntelliSense&quot;">​</a></h3><p>VS Code 默认对 JavaScript、TypeScript、JSON、HTML、CSS、SCSS、Less 这 7 种语言（文件）提供了<strong>智能提示</strong>的支持。其他编程语言则需要先安装相应的插件才能支持。</p><p>在 VS Code 插件职场中，下图是最受欢迎的 8 种<a href="https://marketplace.visualstudio.com/search?target=VSCode&amp;category=Programming%20Languages&amp;sortBy=Installs" target="_blank" rel="noreferrer">编程语言插件</a>：</p><p><img src="https://img.smyhvae.com/20211013_1120.png" alt="20211013_1120"></p><p>智能提示的功能很强大， 包括函数介绍、代码自动补全等等。</p><h3 id="_22、调试与运行" tabindex="-1">22、调试与运行 <a class="header-anchor" href="#_22、调试与运行" aria-label="Permalink to &quot;22、调试与运行&quot;">​</a></h3><p>VS Code <strong>内置</strong>了对 Node.js 运行时的调试支持，可以直接调试 JavaScript 和 TypeScript。其他编程语言的调试，则需要先安装相应的插件才能支持。</p><p>在 VS Code 插件市场中，下图是最受欢迎的几种调试插件：</p><p><img src="https://img.smyhvae.com/20211013_1650.png" alt=""></p><h3 id="_23、文件传输-sftp" tabindex="-1">23、文件传输：sftp <a class="header-anchor" href="#_23、文件传输-sftp" aria-label="Permalink to &quot;23、文件传输：sftp&quot;">​</a></h3><p>如果你需要将本地文件通过 ftp 的形式上传到局域网的服务器（需要先把服务端的配置搭建好），可以安装<code>sftp</code>这个插件，很好用。在公司会经常用到。</p><p>步骤如下：</p><p>（1）安装插件<code>sftp</code>。</p><p>（2）配置 <code>sftp.json</code>文件。 插件安装完成后，输入快捷键「cmd+shift+P」弹出命令面板，然后输入<code>sftp:config</code>，回车，当前工程的<code>.vscode</code>文件夹下就会自动生成一个<code>sftp.json</code>文件，我们需要在这个文件里配置的内容可以是：</p><ul><li><p><code>host</code>：服务器的 IP 地址</p></li><li><p><code>username</code>：用户名</p></li><li><p><code>privateKeyPath</code>：存放在本地的已配置好的用于登录工作站的密钥文件（也可以是 ppk 文件）</p></li><li><p><code>remotePath</code>：工作站上与本地工程同步的文件夹路径，需要和本地工程文件根目录同名，且在使用 sftp 上传文件之前，要手动在工作站上 mkdir 生成这个根目录</p></li><li><p><code>ignore</code>：指定在使用 sftp: sync to remote 的时候忽略的文件及文件夹，注意每一行后面有逗号，最后一行没有逗号</p></li></ul><p>举例如下：(注意，其中的注释需要去掉)</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">host</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">192.168.xxx.xxx</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//服务器ip</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">port</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">22</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//端口，sftp模式是22</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">username</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//用户名</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">password</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//密码</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">protocol</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">sftp</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//模式</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">agent</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">null,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">privateKeyPath</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">null,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">passphrase</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">null,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">passive</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">false,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">interactiveAuth</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">false,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">remotePath</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">/root/node/build/</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//服务器上的文件地址</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">context</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">./server/build</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//本地的文件地址</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">uploadOnSave</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">true,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//监听保存并上传</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">syncMode</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">update</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">watcher</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#676E95;font-style:italic;">//监听外部文件</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#FFCB6B;">files</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">false,</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//外部文件的绝对路径</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#FFCB6B;">autoUpload</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">false,</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#FFCB6B;">autoDelete</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">false</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">},</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">ignore</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#676E95;font-style:italic;">//忽略项</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">**/.vscode/**</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">**/.git/**</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">**/.DS_Store</span><span style="color:#89DDFF;">&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">]</span></span>
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><p>（3）在 VS Code 的当前文件里，选择「右键 -&gt; upload」，就可以将本地的代码上传到 指定的 ftp 服务器上（也就是在上方 <code>host</code> 中配置的服务器 ip）。</p><p>我们还可以选择「右键 -&gt; Diff with Remote」，就可以将本地的代码和 ftp 服务器上的代码做对比，非常方便。</p><h3 id="_24、沉浸模式-禅模式" tabindex="-1">24、沉浸模式/禅模式 <a class="header-anchor" href="#_24、沉浸模式-禅模式" aria-label="Permalink to &quot;24、沉浸模式/禅模式&quot;">​</a></h3><p>程序员写代码需要专注，有时需要进入一种心流。VS Code 给我们提供了一种全屏下的沉浸模式，周围的面板都会被隐藏起来，只显示编辑器部分。</p><p>操作方法：菜单栏选择「查看-外观-禅模式」即可；或者按下快捷键<code>Cmd + K</code>，放手，再按<code>Z</code>也可以达到目的。</p><h3 id="正则表达式批量删除字符串" tabindex="-1">正则表达式批量删除字符串 <a class="header-anchor" href="#正则表达式批量删除字符串" aria-label="Permalink to &quot;正则表达式批量删除字符串&quot;">​</a></h3><p><strong>需求</strong>：将文本中的字符串<code>axxxxb</code>，批量替换为<code>ab</code>。其中，开头字符 a 和 结尾字符 b 固定，中间 xxx 长度不确定。</p><p><strong>解决</strong>：传统查找替换无法胜任。可以使用 VScode 正则表达式功能，查找<code>a.*?b</code>替换为<code>ab</code>即可。其中<code>?</code>是禁止贪婪匹配，否则会误删很多内容。</p><hr><p><strong>拓展需求</strong>：需求——将文本中的字符串<code>axxxx</code>，批量替换为<code>a</code>。其中，开头字符 a 固定，后面的 xxx 长度不确定。</p><p><strong>解决</strong>：传统查找替换无法胜任。可以使用 VScode 正则表达式功能，查找<code>a.*?\n</code>替换为<code>a\n</code>即可。</p><h2 id="六、三头六臂-vs-code-插件介绍-插件推荐" tabindex="-1">六、三头六臂：VS Code 插件介绍 &amp; 插件推荐 <a class="header-anchor" href="#六、三头六臂-vs-code-插件介绍-插件推荐" aria-label="Permalink to &quot;六、三头六臂：VS Code 插件介绍 &amp; 插件推荐&quot;">​</a></h2><p>VS Code 有一个很强大的功能就是支持插件扩展，让你的编辑器仿佛拥有了三头六臂。</p><h3 id="安装插件" tabindex="-1">安装插件 <a class="header-anchor" href="#安装插件" aria-label="Permalink to &quot;安装插件&quot;">​</a></h3><p><img src="http://img.smyhvae.com/20191108_1553_2.png" alt=""></p><p>上图中，点击红框部分，即可在顶部输入框里，查找你想要的插件名，然后进行安装。</p><p>插件安装完成后，记得重启软件（或者点击插件位置的“重新加载”），插件才会生效。</p><p>另外，我们还可以访问官网的插件市场来安装插件：</p><ul><li>VS Code 插件市场（官方）：<a href="https://marketplace.visualstudio.com/vscode" target="_blank" rel="noreferrer">https://marketplace.visualstudio.com/vscode</a></li></ul><p><strong>插件的安装目录</strong>：</p><ul><li>Windows：：<code>%USERPROFILE%\.vscode\extensions</code></li><li>macOS：<code>~/.vscode/extensions</code></li><li>macOS：<code>~/.vscode/extensions</code></li></ul><h3 id="插件的类型" tabindex="-1">插件的类型 <a class="header-anchor" href="#插件的类型" aria-label="Permalink to &quot;插件的类型&quot;">​</a></h3><p><img src="http://img.smyhvae.com/20211013_1757_2.png" alt="20211013_1757_2"></p><p>插件市场的首页有四个模块，可以作为重要的信息来源：</p><ul><li>Featured：由 VS Code 团队精心推荐的插件。</li><li>Trending：近期热门插件。</li><li>Most Popular：按总安装量排序的插件。</li><li>Recently Added：最新发布的插件。</li></ul><p><img src="http://img.smyhvae.com/20211013_1758.png" alt="20211013_1758"></p><p><img src="http://img.smyhvae.com/20211013_1955.png" alt="20211013_1955"></p><p>插件市场至少有 17 种类型的插件：（按照数量排序）</p><ul><li>Themes：主题插件</li><li>Programming Languages：编程语言插件</li><li>Snippets：代码片段</li><li>Extension Packs：插件包，里面包括多个插件</li><li>Formatters：代码格式化</li><li>Linters：静态检查</li><li>Debuggers：调试器</li><li>Keymaps：快捷键映射</li><li>Visualization：可视化</li><li>Language Packs：各国的语言插件</li><li>Azure：Azure 云计算</li><li>Data Science：数据科学</li><li>SCM Providers：源代码控制管理器（source control manager）</li><li>Notebooks</li><li>Education：教育</li><li>Testing：测试相关</li><li>Machine Learning：机器学习</li><li>Others：其他</li></ul><h3 id="插件的过滤显示" tabindex="-1">插件的过滤显示 <a class="header-anchor" href="#插件的过滤显示" aria-label="Permalink to &quot;插件的过滤显示&quot;">​</a></h3><p>在 VS Code 中打开插件管理视图，可以针对已安装的插件，进行过滤展示。</p><p>1）点击插件视图右上角的<code>...</code>按钮，可以展示不同状态的插件：</p><p><img src="http://img.smyhvae.com/20211013_2011.png" alt="20211013_2011"></p><p>2）在搜索框输入字符<code>@</code>，会展示出不同类型的过滤器：</p><p><img src="http://img.smyhvae.com/20211013_2015.png" alt="20211013_2015"></p><p><strong>常见的过滤器如下</strong>：</p><p>1）按大类搜：</p><ul><li><code>@builtin</code>：显示 VS Code 内置的插件</li><li><code>@disabled</code>：显示被禁用的插件</li><li><code>@enabled</code>：显示已启用的插件</li><li><code>@installed</code>：显示已安装的插件</li><li><code>@outdated</code>：显示待更新的插件</li></ul><p>2）精准搜索：</p><ul><li><code>@id</code>：按 id 显示插件</li><li><code>@tag</code>：根据标签显示插件。</li></ul><p>3）对插件进行排序：</p><ul><li><code>@sort:installs</code>：根据插件的安装量排序</li><li><code>@sourt:rating</code>：根据插件的评分排序</li><li><code>@sort:name</code>：根据插件名字的字母顺序排序</li></ul><p>4）组合搜索：（举例）</p><ul><li><code>@installed @category:themes</code>：显示已安装的主题插件。</li><li><code>@sort:installs java</code>：对 Java 相关的插件按照安装量排序。</li></ul><p>下面的内容，我来列举一些常见的插件，这些插件都很实用，小伙伴们可以按需安装。注意：每一类插件里，<strong>顺序越靠前，越实用</strong>。</p><h3 id="_1、基本插件" tabindex="-1">1、基本插件 <a class="header-anchor" href="#_1、基本插件" aria-label="Permalink to &quot;1、基本插件&quot;">​</a></h3><h4 id="chinese-simplified-language-pack-for-visual-studio-code" tabindex="-1">Chinese (Simplified) Language Pack for Visual Studio Code <a class="header-anchor" href="#chinese-simplified-language-pack-for-visual-studio-code" aria-label="Permalink to &quot;Chinese (Simplified) Language Pack for Visual Studio Code&quot;">​</a></h4><p>让软件显示为简体中文语言。</p><h3 id="_2、git-相关插件" tabindex="-1">2、Git 相关插件 <a class="header-anchor" href="#_2、git-相关插件" aria-label="Permalink to &quot;2、Git 相关插件&quot;">​</a></h3><h4 id="gitlens-【荐】" tabindex="-1">GitLens 【荐】 <a class="header-anchor" href="#gitlens-【荐】" aria-label="Permalink to &quot;GitLens 【荐】&quot;">​</a></h4><p>我强烈建议你安装插件<code>GitLens</code>，它是 VS Code 中我最推荐的一个插件，简直是 Git 神器，码农必备。如果你不知道，那真是 out 了。</p><p>GitLens 在 Git 管理上有很多强大的功能，比如：</p><ul><li>将光标放置在代码的当前行，可以看到这样代码的提交者是谁，以及提交时间。这一点，是 GitLens 最便捷的功能。</li><li>查看某个 commit 的代码改动记录</li><li>查看不同的分支</li><li>可以将两个 commit 进行代码对比</li><li>甚至可以将两个 branch 分支进行整体的代码对比。这一点，简直是 GitLens 最强大的功能。当我们在不同分支 review 代码的时候，就可以用到这一招。</li></ul><p>打开你的 Git 仓库，未安装 GitLens 时是这样的：</p><p><img src="http://img.smyhvae.com/20211009_1400.png" alt=""></p><p>安装了 GitLens 之后是这样的：</p><p><img src="http://img.smyhvae.com/20211009_1430.png" alt=""></p><p>上图中，红框部分就是 GitLens 的功能，诸君可以自由发挥。</p><p>补充一个有意思的趣事：Python 插件、Ruby 插件、GitLens 插件、Vetur 插件，这四个插件的开发者先后加入了微软。</p><h4 id="git-history" tabindex="-1">Git History <a class="header-anchor" href="#git-history" aria-label="Permalink to &quot;Git History&quot;">​</a></h4><p>有些同学习惯使用编辑器中的 Git 管理工具，而不太喜欢要打开另外一个 Git UI 工具的同学，这一款插件满足你查询所有 Git 记录的需求。</p><h4 id="local-history-【荐】" tabindex="-1">Local History 【荐】 <a class="header-anchor" href="#local-history-【荐】" aria-label="Permalink to &quot;Local History 【荐】&quot;">​</a></h4><p>维护文件的本地历史记录。代码意外丢失时，有时可以救命。</p><p><img src="http://img.smyhvae.com/20200618_2246.png" alt=""></p><h3 id="_3、代码智能提示插件" tabindex="-1">3、代码智能提示插件 <a class="header-anchor" href="#_3、代码智能提示插件" aria-label="Permalink to &quot;3、代码智能提示插件&quot;">​</a></h3><h4 id="vetur" tabindex="-1">Vetur <a class="header-anchor" href="#vetur" aria-label="Permalink to &quot;Vetur&quot;">​</a></h4><p>Vue 多功能集成插件，包括：语法高亮，智能提示，emmet，错误提示，格式化，自动补全，debugger。VS Code 官方钦定 Vue 插件，Vue 开发者必备。</p><h4 id="es7-react-redux-graphql-react-native-snippets" tabindex="-1">ES7 React/Redux/GraphQL/React-Native snippets <a class="header-anchor" href="#es7-react-redux-graphql-react-native-snippets" aria-label="Permalink to &quot;ES7 React/Redux/GraphQL/React-Native snippets&quot;">​</a></h4><p>React/Redux/react-router 的语法智能提示。</p><h4 id="javascript-es6-code-snippets" tabindex="-1">JavaScript(ES6) code snippets <a class="header-anchor" href="#javascript-es6-code-snippets" aria-label="Permalink to &quot;JavaScript(ES6) code snippets&quot;">​</a></h4><p>ES6 语法智能提示，支持快速输入。</p><h4 id="javascript-console-utils-快速打印-log-日志【荐】" tabindex="-1">javascript console utils：快速打印 log 日志【荐】 <a class="header-anchor" href="#javascript-console-utils-快速打印-log-日志【荐】" aria-label="Permalink to &quot;javascript console utils：快速打印 log 日志【荐】&quot;">​</a></h4><p>安装这个插件后，当我们按住快捷键「Cmd + Shift + L」后，即可自动出现日志 <code>console.log()</code>。简直是日志党福音。</p><p>当我们选中某个变量 <code>name</code>，然后按住快捷键「Cmd + Shift + L」，即可自动出现这个变量的日志 <code>console.log(name)</code>。</p><p>其他的同类插件还有：Turbo Console Log。</p><p>不过，生产环境的代码，还是尽量少打日志比较好，避免出现一些异常。</p><p>编程有三等境界：</p><ul><li><p>第三等境界是打日志，这是最简单、便捷的方式，略显低级，一般新手或资深程序员偷懒时会用。</p></li><li><p>第二等境界是断点调试，在前端、Java、PHP、iOS 开发时非常常用，通过断点调试可以很直观地跟踪代码执行逻辑、调用栈、变量等，是非常实用的技巧。</p></li><li><p>第一等境界是测试驱动开发，在写代码之前先写测试。与第二等的断点调试刚好相反，大部分人不是很习惯这种方式，但在国外开发者或者敏捷爱好者看来，这是最高效的开发方式，在保证代码质量、重构等方面非常有帮助，是现代编程开发必不可少的一部分。</p></li></ul><h4 id="code-spell-checker-单词拼写错误检查" tabindex="-1">Code Spell Checker：单词拼写错误检查 <a class="header-anchor" href="#code-spell-checker-单词拼写错误检查" aria-label="Permalink to &quot;Code Spell Checker：单词拼写错误检查&quot;">​</a></h4><p>这个拼写检查程序的目标是帮助捕获常见的单词拼写错误，可以检测驼峰命名。从此告别 Chinglish.</p><h4 id="auto-close-tag、auto-rename-tag" tabindex="-1">Auto Close Tag、Auto Rename Tag <a class="header-anchor" href="#auto-close-tag、auto-rename-tag" aria-label="Permalink to &quot;Auto Close Tag、Auto Rename Tag&quot;">​</a></h4><p>自动闭合配对的标签、自动重命名配对的标签。</p><h3 id="_4、代码显示增强插件" tabindex="-1">4、代码显示增强插件 <a class="header-anchor" href="#_4、代码显示增强插件" aria-label="Permalink to &quot;4、代码显示增强插件&quot;">​</a></h3><h4 id="bracket-pair-colorizer-2-突出显示成对的括号【荐】" tabindex="-1">Bracket Pair Colorizer 2：突出显示成对的括号【荐】 <a class="header-anchor" href="#bracket-pair-colorizer-2-突出显示成对的括号【荐】" aria-label="Permalink to &quot;Bracket Pair Colorizer 2：突出显示成对的括号【荐】&quot;">​</a></h4><p><code>Bracket Pair Colorizer 2</code>插件：以不同颜色显示成对的括号，并用连线标注括号范围。简称<strong>彩虹括号</strong>。</p><p>另外，还有个<code>Rainbow Brackets</code>插件，也可以突出显示成对的括号。</p><h4 id="highlight-icemode-选中相同的代码时-让高亮显示更加明显【荐】" tabindex="-1">highlight-icemode：选中相同的代码时，让高亮显示更加明显【荐】 <a class="header-anchor" href="#highlight-icemode-选中相同的代码时-让高亮显示更加明显【荐】" aria-label="Permalink to &quot;highlight-icemode：选中相同的代码时，让高亮显示更加明显【荐】&quot;">​</a></h4><p>VSCode 自带的高亮显示，实在是不够显眼。用插件支持一下吧。</p><p>所用了这个插件之后，VS Code 自带的高亮就可以关掉了：</p><p>在用户设置里添加<code>&quot;editor.selectionHighlight&quot;: false</code>即可。</p><p>参考链接：<a href="https://blog.csdn.net/palmer_kai/article/details/79548164" target="_blank" rel="noreferrer">vscode 选中后相同内容高亮插件推荐</a></p><h4 id="vscode-icons" tabindex="-1">vscode-icons <a class="header-anchor" href="#vscode-icons" aria-label="Permalink to &quot;vscode-icons&quot;">​</a></h4><p>vscode-icons 会根据文件的后缀名来显示不同的图标，让你更直观地知道每种文件是什么类型的。</p><h4 id="indent-rainbow-突出显示代码缩进" tabindex="-1">indent-rainbow：突出显示代码缩进 <a class="header-anchor" href="#indent-rainbow-突出显示代码缩进" aria-label="Permalink to &quot;indent-rainbow：突出显示代码缩进&quot;">​</a></h4><p><code>indent-rainbow</code>插件：突出显示代码缩进。</p><p>安装完成后，效果如下图所示：</p><p><img src="http://img.smyhvae.com/20190418_1958.png" alt=""></p><h4 id="todo-highlight" tabindex="-1">TODO Highlight <a class="header-anchor" href="#todo-highlight" aria-label="Permalink to &quot;TODO Highlight&quot;">​</a></h4><p>写代码过程中，突然发现一个 Bug，但是又不想停下来手中的活，以免打断思路，怎么办？按照代码规范，我们一般是在代码中加个 TODO 注释。比如：（注意，一定要写成大写<code>TODO</code>，而不是小写的<code>todo</code>）</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">//TODO:这里有个bug，我一会儿再收拾你</span></span></code></pre></div><p>或者：</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">//FIXME:我也不知道为啥， but it works only that way.</span></span></code></pre></div><p>安装了插件 <code>TODO Highlight</code>之后，按住「Cmd + Shift + P」打开命令面板，输入「Todohighlist」，选择相关的命令，我们就可以看到一个 todoList 的清单。</p><h4 id="better-comments" tabindex="-1">Better Comments <a class="header-anchor" href="#better-comments" aria-label="Permalink to &quot;Better Comments&quot;">​</a></h4><p>为注释添加更醒目、带分类的色彩。</p><h3 id="_5、代码格式化插件" tabindex="-1">5、代码格式化插件 <a class="header-anchor" href="#_5、代码格式化插件" aria-label="Permalink to &quot;5、代码格式化插件&quot;">​</a></h3><h4 id="prettier-代码格式化" tabindex="-1">Prettier：代码格式化 <a class="header-anchor" href="#prettier-代码格式化" aria-label="Permalink to &quot;Prettier：代码格式化&quot;">​</a></h4><p>Prettier 是一个代码格式化工具，<strong>只关注格式化，但不具备校验功能</strong>。在一个多人协同开发的团队中，统一的代码编写规范非常重要。一套规范可以让我们编写的代码达到一致的风格，提高代码的可读性和统一性。自然维护性也会有所提高，代码的展示也会更加美观。</p><p>步骤如下：</p><p>（1）安装插件 <code>Prettier</code>。</p><p>（2）在项目的根路径下，新建文件<code>.prettierrc</code>，并在文件中添加如下内容：</p><div class="language-json"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">{</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">printWidth</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">150</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">tabWidth</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">4</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">semi</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">true,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">singleQuote</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">true,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">trailingComma</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">es5</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">tslintIntegration</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">true,</span></span>
<span class="line"><span style="color:#A6ACCD;">  </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C792EA;">insertSpaceBeforeFunctionParenthesis</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">false</span></span>
<span class="line"><span style="color:#89DDFF;">}</span></span></code></pre></div><p>上面的内容，是我自己的配置，你可以参考。更多配置，可见官方文档：<a href="https://prettier.io/docs/en/options.html" target="_blank" rel="noreferrer">https://prettier.io/docs/en/options.html</a></p><p>（3）Mac 用户按快捷键「Option + Shift + F」，Win 用户按快捷键「Alt + shift + F」，即可完成代码的格式化。如果你的 VS Code 设置的是自动格式化代码，那么这一步可以忽略。</p><h4 id="eslint-代码格式的校验" tabindex="-1">ESLint：代码格式的校验 <a class="header-anchor" href="#eslint-代码格式的校验" aria-label="Permalink to &quot;ESLint：代码格式的校验&quot;">​</a></h4><p>日常开发中，建议用 Prettier 做<strong>代码格式化</strong>，然后用 eslint 做<strong>格式校验</strong>。很多人把这两个插件的功能弄混了。</p><p>一般做法是：格式化建议是由程序员手动触发，格式校验由系统强制校验。通过 Prettier <strong>手动</strong>触发格式化，是为了让用户有感知；通过 eslint 做<strong>强制</strong>校验之后，如果代码的格式不符合要求，系统就禁止你提交代码。</p><h4 id="beautify" tabindex="-1">Beautify <a class="header-anchor" href="#beautify" aria-label="Permalink to &quot;Beautify&quot;">​</a></h4><p>代码格式化工具。</p><p>备注：相比之下，Prettier 是当前最流行的代码格式化工具，比 Beautify 用得更多。</p><h4 id="paste-json-as-code" tabindex="-1">Paste JSON as Code <a class="header-anchor" href="#paste-json-as-code" aria-label="Permalink to &quot;Paste JSON as Code&quot;">​</a></h4><p>此插件可以将剪贴板中的 JSON 字符串转换成工作代码。支持多种语言。</p><h4 id="js-css-html-formatter【荐】" tabindex="-1">JS-CSS-HTML Formatter【荐】 <a class="header-anchor" href="#js-css-html-formatter【荐】" aria-label="Permalink to &quot;JS-CSS-HTML Formatter【荐】&quot;">​</a></h4><p>保存文件时，自动格式化 HTML、CSS、JS 代码。</p><h3 id="_6、图片相关插件" tabindex="-1">6、图片相关插件 <a class="header-anchor" href="#_6、图片相关插件" aria-label="Permalink to &quot;6、图片相关插件&quot;">​</a></h3><h4 id="polacode-2020-生成代码截图-【荐】" tabindex="-1">Polacode-2020：生成代码截图 【荐】 <a class="header-anchor" href="#polacode-2020-生成代码截图-【荐】" aria-label="Permalink to &quot;Polacode-2020：生成代码截图 【荐】&quot;">​</a></h4><p>可以把代码片段保存成美观的图片，主题不同，代码的配色方案也不同，也也可以自定义设置图片的边框颜色、大小、阴影。</p><p>尤其是在我们做 PPT 分享时需要用到代码片段时，或者需要在网络上优雅地分享代码片段时，这一招很有用。</p><p>生成的效果如下：</p><p><img src="http://img.smyhvae.com/20200619_1403.png" alt=""></p><p>其他同类插件：<code>CodeSnap</code>。我们也可以通过 <a href="https://carbon.now.sh/" target="_blank" rel="noreferrer">https://carbon.now.sh/</a>这个网站生成代码图片</p><p>有人可能会说：直接用 QQ 截图不行吗？可以是可以，但不够美观、不够干净。</p><h4 id="image-preview-【荐】" tabindex="-1">Image Preview 【荐】 <a class="header-anchor" href="#image-preview-【荐】" aria-label="Permalink to &quot;Image Preview 【荐】&quot;">​</a></h4><p>图片预览。鼠标移动到图片 url 上的时候，会自动显示图片的预览和图片尺寸。</p><h3 id="_7、css-相关插件" tabindex="-1">7、CSS 相关插件 <a class="header-anchor" href="#_7、css-相关插件" aria-label="Permalink to &quot;7、CSS 相关插件&quot;">​</a></h3><h4 id="css-peek" tabindex="-1">CSS Peek <a class="header-anchor" href="#css-peek" aria-label="Permalink to &quot;CSS Peek&quot;">​</a></h4><p>增强 HTML 和 CSS 之间的关联，快速查看该元素上的 CSS 样式。</p><h4 id="vue-css-peek" tabindex="-1">Vue CSS Peek <a class="header-anchor" href="#vue-css-peek" aria-label="Permalink to &quot;Vue CSS Peek&quot;">​</a></h4><p>CSS Peek 对 Vue 没有支持，该插件提供了对 Vue 文件的支持。</p><h4 id="color-info" tabindex="-1">Color Info <a class="header-anchor" href="#color-info" aria-label="Permalink to &quot;Color Info&quot;">​</a></h4><p>这个便捷的插件，将为你提供你在 CSS 中使用颜色的相关信息。你只需在颜色上悬停光标，就可以预览色块中色彩模型的（HEX、 RGB、HSL 和 CMYK）相关信息了。</p><h3 id="_8、mardown-相关插件" tabindex="-1">8、Mardown 相关插件 <a class="header-anchor" href="#_8、mardown-相关插件" aria-label="Permalink to &quot;8、Mardown 相关插件&quot;">​</a></h3><h4 id="markdown-preview-github-styling-【荐】" tabindex="-1">Markdown Preview Github Styling 【荐】 <a class="header-anchor" href="#markdown-preview-github-styling-【荐】" aria-label="Permalink to &quot;Markdown Preview Github Styling 【荐】&quot;">​</a></h4><p>以 GitHub 风格预览 Markdown 样式，十分简洁优雅。就像下面这样，左侧书写 Markdown 文本，右侧预览 Markdown 的渲染效果：</p><p><img src="http://img.smyhvae.com/20200618_2025.png" alt=""></p><h4 id="markdown-preview-enhanced" tabindex="-1">Markdown Preview Enhanced <a class="header-anchor" href="#markdown-preview-enhanced" aria-label="Permalink to &quot;Markdown Preview Enhanced&quot;">​</a></h4><p>预览 Markdown 样式。</p><h4 id="markdown-all-in-one" tabindex="-1">Markdown All in One <a class="header-anchor" href="#markdown-all-in-one" aria-label="Permalink to &quot;Markdown All in One&quot;">​</a></h4><p>这个插件将帮助你更高效地在 Markdown 中编写文档。</p><h3 id="_9、通用工具类插件" tabindex="-1">9、通用工具类插件 <a class="header-anchor" href="#_9、通用工具类插件" aria-label="Permalink to &quot;9、通用工具类插件&quot;">​</a></h3><h4 id="sftp-文件传输-【荐】" tabindex="-1">sftp：文件传输 【荐】 <a class="header-anchor" href="#sftp-文件传输-【荐】" aria-label="Permalink to &quot;sftp：文件传输 【荐】&quot;">​</a></h4><p>如果你需要将本地文件通过 ftp 的形式上传到局域网的服务器，可以安装<code>sftp</code>这个插件，很好用。在公司会经常用到。</p><p>详细配置已经在上面讲过。</p><h4 id="live-server-【荐】" tabindex="-1">Live Server 【荐】 <a class="header-anchor" href="#live-server-【荐】" aria-label="Permalink to &quot;Live Server 【荐】&quot;">​</a></h4><p>在本地启动一个服务器，代码写完后可以实现「热更新」，实时地在网页中看到运行效果。就不需要每次都得手动刷新页面了。</p><p>使用方式：安装插件后，开始写代码；代码写完后，右键选择「Open with Live Server」。</p><h4 id="open-in-browser" tabindex="-1">open in browser <a class="header-anchor" href="#open-in-browser" aria-label="Permalink to &quot;open in browser&quot;">​</a></h4><p>安装<code>open in browser</code>插件后，在 HTML 文件中「右键选择 --&gt; Open in Default Browser」，即可在浏览器中预览网页。</p><h4 id="project-manager" tabindex="-1">Project Manager <a class="header-anchor" href="#project-manager" aria-label="Permalink to &quot;Project Manager&quot;">​</a></h4><p>工作中，我们经常会来回切换多个项目，每次都要找到对应项目的目录再打开，比较麻烦。Project Manager 插件可以解决这样的烦恼，它提供了专门的视图来展示你的项目，我们可以把常用的项目保存在这里，需要时一键切换，十分方便。</p><h4 id="wakatime-【荐】" tabindex="-1">WakaTime 【荐】 <a class="header-anchor" href="#wakatime-【荐】" aria-label="Permalink to &quot;WakaTime 【荐】&quot;">​</a></h4><p>统计在 VS Code 里写代码的时间。统计效果如下：</p><p><img src="http://img.smyhvae.com/20200618_2300.png" alt=""></p><h4 id="code-time" tabindex="-1">Code Time <a class="header-anchor" href="#code-time" aria-label="Permalink to &quot;Code Time&quot;">​</a></h4><p><code>Code Time</code>插件：记录编程时间，统计代码行数。</p><p>安装该插件后，VS Code 底部的状态栏右下角可以看到时间统计。点击那个位置之后，选择「Code Time Dashboard」，即可查看统计结果。</p><p>备注：团长试了一下这个 code time 插件，发现统计结果不是很准。</p><h4 id="settings-sync" tabindex="-1">Settings Sync <a class="header-anchor" href="#settings-sync" aria-label="Permalink to &quot;Settings Sync&quot;">​</a></h4><ul><li><p>地址：<a href="https://github.com/shanalikhan/code-settings-sync" target="_blank" rel="noreferrer">https://github.com/shanalikhan/code-settings-sync</a></p></li><li><p>作用：多台设备之间，同步 VS Code 配置。通过登录 GitHub 账号来使用这个同步工具。</p></li></ul><p>同步的详细操作，下一段会讲。</p><p>另外，北京时间的<a href="https://zhuanlan.zhihu.com/p/184868336" target="_blank" rel="noreferrer">2020 年 8 月 14 日</a>，微软发布 Visual Studio Code 1.48 稳定版。此版本<strong>原生</strong>支持用户同步 VS Code 的配置，只需要登录微软账号或者 GitHub 账号即可。</p><h4 id="vscode-syncing" tabindex="-1">vscode-syncing <a class="header-anchor" href="#vscode-syncing" aria-label="Permalink to &quot;vscode-syncing&quot;">​</a></h4><ul><li><p>地址：<a href="https://github.com/nonoroazoro/vscode-syncing" target="_blank" rel="noreferrer">https://github.com/nonoroazoro/vscode-syncing</a></p></li><li><p>作用：多台设备之间，同步 VS Code 配置。</p></li></ul><h4 id="minapp-小程序支持" tabindex="-1">minapp：小程序支持 <a class="header-anchor" href="#minapp-小程序支持" aria-label="Permalink to &quot;minapp：小程序支持&quot;">​</a></h4><p>小程序开发必备插件。</p><h4 id="search-node-modules" tabindex="-1">Search node_modules <a class="header-anchor" href="#search-node-modules" aria-label="Permalink to &quot;Search node_modules&quot;">​</a></h4><p><code>node_modules</code>模块里面的文件夹和模块实在是太多了，根本不好找。好在安装 <code>Search node_modules</code> 这个插件后，输入快捷键「Cmd + Shift + P」，然后输入 <code>node_modules</code>，在弹出的选项中选择 <code>Search node_modules</code>，即可搜索 node_modules 里的模块。</p><p><img src="http://img.smyhvae.com/20200618_2100.png" alt=""></p><h4 id="remotehub" tabindex="-1">RemoteHub <a class="header-anchor" href="#remotehub" aria-label="Permalink to &quot;RemoteHub&quot;">​</a></h4><p>不要惊讶，RemoteHub 和 GitLens 是同一个作者开发出来的。</p><p><code>RemoteHub</code>插件的作用是：可以在本地查看 GitHub 网站上的代码，而不需要将代码下载到本地。</p><p><img src="http://img.smyhvae.com/20190418_1937.png" alt=""></p><p>这个插件目前使用的人还不多，赶紧安装起来尝尝鲜吧。</p><h4 id="live-share-实时编码分享" tabindex="-1">Live Share：实时编码分享 <a class="header-anchor" href="#live-share-实时编码分享" aria-label="Permalink to &quot;Live Share：实时编码分享&quot;">​</a></h4><p><code>Live Share</code>这个神奇的插件是由微软官方出品，它的作用是：<strong>实时编码分享</strong>。也就是说，它可以实现你和你的同伴一起写代码。这绝对就是<strong>结对编程</strong>的神器啊。</p><p>安装方式：</p><p>打开插件管理，搜索“live share”，安装。安装后重启 VS Code，在左侧会多出一个按钮：</p><p><img src="http://img.smyhvae.com/20190418_2012.png" alt=""></p><p>上图中，点击红框部分，登录后就可以分享你的工作空间了。</p><p><img src="http://img.smyhvae.com/20190418_2005.png" alt=""></p><h4 id="import-cost" tabindex="-1">Import Cost <a class="header-anchor" href="#import-cost" aria-label="Permalink to &quot;Import Cost&quot;">​</a></h4><p>在项目开发过程中，我们会引入很多 npm 包，有时候可能只用到了某个包里的一个方法，却引入了整个包，导致代码体积增大很多。<code>Import Cost</code>插件可以在代码中友好的提示我们，当前引入的包会增加多少体积，这很有助于帮我们优化代码的体积。</p><h3 id="_10、主题插件" tabindex="-1">10、主题插件 <a class="header-anchor" href="#_10、主题插件" aria-label="Permalink to &quot;10、主题插件&quot;">​</a></h3><p>给你的 VS Code 换个皮肤吧，免费的那种。</p><ul><li><p>Dracula Theme</p></li><li><p>Material Theme</p></li><li><p>Nebula Theme</p></li><li><p><a href="https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme" target="_blank" rel="noreferrer">One Dark Pro</a></p></li><li><p>One Monokai Theme</p></li><li><p>Monokai Pro</p></li><li><p>Ayu</p></li><li><p><a href="https://marketplace.visualstudio.com/items?itemName=akarlsten.vscode-snazzy-akarlsten" target="_blank" rel="noreferrer">Snazzy Plus</a></p></li><li><p><a href="https://marketplace.visualstudio.com/items?itemName=alexanderte.dainty-vscode" target="_blank" rel="noreferrer">Dainty</a></p></li><li><p><code>SynthWave &#39;84</code></p></li><li><p>GitHub Plus Theme：白色主题</p></li><li><p>Horizon Theme：红色主题</p></li></ul><h2 id="七、无缝切换-vs-code-配置云同步" tabindex="-1">七、无缝切换：VS Code 配置云同步 <a class="header-anchor" href="#七、无缝切换-vs-code-配置云同步" aria-label="Permalink to &quot;七、无缝切换：VS Code 配置云同步&quot;">​</a></h2><p>我们可以将配置云同步，这样的话，当我们换个电脑时，即可将配置一键同步到本地，就不需要重新安装插件了，也不需要重新配置软件。</p><p>下面讲的两个同步方法，都可以，看你自己需要。方法 1 是 VS Code 自带的同步功能，操作简单。方法 2 需要安装插件，支持更多的自定义配置。</p><h3 id="方法-1-使用-vs-code-自带的同步功能" tabindex="-1">方法 1：使用 VS Code 自带的同步功能 <a class="header-anchor" href="#方法-1-使用-vs-code-自带的同步功能" aria-label="Permalink to &quot;方法 1：使用 VS Code 自带的同步功能&quot;">​</a></h3><p>1、<strong>配置同步</strong>：</p><p>（1）在菜单栏选择「 Code --&gt; 首选项 --&gt; 打开设置同步」：</p><p><img src="https://img.smyhvae.com/20211008_1713.png" alt=""></p><p>（2）选择需要同步的配置：</p><p><img src="http://img.smyhvae.com/20211008_1716.png" alt=""></p><p>（3）通过 Microsoft 或者 GitHub 账号登录。 上图中，点击“登录并打开”，然后弹出如下界面：</p><p><img src="http://img.smyhvae.com/20211008_1717.png" alt=""></p><p>上图中，使用 微软账号或者 GitHub 账号登录：</p><p><img src="https://img.smyhvae.com/20211008_1718.png" alt=""></p><p>（4）同步完成后，菜单栏会显示“首先项同步已打开”，最左侧也会多出一个同步图标，如下图所示：</p><p><img src="https://img.smyhvae.com/20211008_1720.png" alt=""></p><p>2、<strong>管理同步</strong>：</p><p>（1）点击菜单栏「Code --&gt; 首选项 --&gt; 设置同步已打开」，会弹出如下界面，进行相应的同步管理即可：</p><p><img src="https://img.smyhvae.com/20211008_1736.png" alt=""></p><p>（2）换另外一个电脑时，登录相同的账号，即可完成同步。</p><p>参考链接：</p><ul><li><a href="https://blog.csdn.net/baidu_33340703/article/details/106967884" target="_blank" rel="noreferrer">VS Code 原生的配置同步功能——Settings Sync</a></li></ul><h3 id="方法-2-使用插件-settings-sync" tabindex="-1">方法 2：使用插件 <code>settings-sync</code> <a class="header-anchor" href="#方法-2-使用插件-settings-sync" aria-label="Permalink to &quot;方法 2：使用插件 `settings-sync`&quot;">​</a></h3><p>使用方法 2，我们还可以把配置分享其他用户，也可以把其他用户的配置给自己用。</p><p>1、<strong>配置同步</strong>：（将自己本地的配置云同步到 GitHub）</p><p>（1）安装插件 <code>settings-sync</code>。</p><p>（2）安装完插件后，在插件里使用 GitHub 账号登录。</p><p>（3）登录后在 vscode 的界面中，可以选择一个别人的 gist；也可以忽略掉，然后创建一个属于自己的 gist。</p><p>（4）使用快捷键 「Command + Shift + P」，在弹出的命令框中输入 sync，并选择「更新/上传配置」，这样就可以把最新的配置上传到 GitHub。</p><p>2、<strong>管理同步</strong>：（换另外一个电脑时，从云端同步配置到本地）</p><p>（1）当我们换另外一台电脑时，可以先在 VS Code 中安装 <code>settings-sync</code> 插件。</p><p>（2）安装完插件后，在插件里使用 GitHub 账号登录。</p><p>（3）登录之后，插件的界面上，会自动出现之前的同步记录：</p><p><img src="http://img.smyhvae.com/20200521_1530.png" alt=""></p><p>上图中，我们点击最新的那条记录，就可将云端的最新配置同步到本地：</p><p><img src="http://img.smyhvae.com/20200521_1550.png" alt=""></p><p>如果你远程的配置没有成功同步到本地，那可能是网络的问题，此时，可以使用快捷键 「Command + Shift + P」，在弹出的命令框中输入 sync，并选择「下载配置」，多试几次。</p><p><strong>使用其他人的配置</strong>：</p><p>如果我们想使用别人的配置，首先需要对方提供给你 gist。具体步骤如下：</p><p>（1）安装插件 <code>settings-sync</code>。</p><p>（2）使用快捷键 「Command + Shift + P」，在弹出的命令框中输入 sync，并选择「下载配置」</p><p>（3）在弹出的界面中，选择「Download Public Gist」，然后输入别人分享给你的 gist。注意，这一步不需要登录 GitHub 账号。</p><h2 id="最后一段" tabindex="-1">最后一段 <a class="header-anchor" href="#最后一段" aria-label="Permalink to &quot;最后一段&quot;">​</a></h2><p>如果你还有什么推荐的 VS Code 插件，欢迎留言。</p><p>大家完全不用担心这篇文章会过时，随着 VS Code 的版本更新和插件更新，本文也会随之更新。关于 VS Code 内容的后续更新，你可以关注我在 GitHub 上的前端入门项目，项目地址是：</p><blockquote><p><a href="https://github.com/qianguyihao/Web" target="_blank" rel="noreferrer">https://github.com/qianguyihao/Web</a></p></blockquote><p>一个超级详细和真诚的前端入门项目。</p><h2 id="todo" tabindex="-1">todo <a class="header-anchor" href="#todo" aria-label="Permalink to &quot;todo&quot;">​</a></h2><ul><li><a href="https://github.com/qianguyihao/Web/issues/84" target="_blank" rel="noreferrer">issues 84</a></li></ul><h2 id="参考链接" tabindex="-1">参考链接 <a class="header-anchor" href="#参考链接" aria-label="Permalink to &quot;参考链接&quot;">​</a></h2><h3 id="_2021-年" tabindex="-1">2021 年 <a class="header-anchor" href="#_2021-年" aria-label="Permalink to &quot;2021 年&quot;">​</a></h3><ul><li>中文版 Awesome VS Code：<a href="https://github.com/formulahendry/awesome-vscode-cn" target="_blank" rel="noreferrer">https://github.com/formulahendry/awesome-vscode-cn</a></li></ul><h3 id="_2020-年" tabindex="-1">2020 年 <a class="header-anchor" href="#_2020-年" aria-label="Permalink to &quot;2020 年&quot;">​</a></h3><ul><li><p><a href="https://juejin.im/post/5ea40c6751882573b219777d" target="_blank" rel="noreferrer">VSCode 插件大全｜ VSCode 高级玩家之第二篇</a></p></li><li><p><a href="http://www.supuwoerc.xyz/tools/vscode/plugins.html" target="_blank" rel="noreferrer">http://www.supuwoerc.xyz/tools/vscode/plugins.html</a></p></li><li><p><a href="https://zhuanlan.zhihu.com/p/99462672" target="_blank" rel="noreferrer">如何让 VS Code 更好用 10 倍？这里有一份 VS Code 新手指南</a></p></li><li><p><a href="https://lyreal666.com/%E9%82%A3%E4%BA%9B%E4%BD%A0%E5%BA%94%E8%AF%A5%E8%80%83%E8%99%91%E5%8D%B8%E8%BD%BD%E7%9A%84-VSCode-%E6%89%A9%E5%B1%95/#more" target="_blank" rel="noreferrer">那些你应该考虑卸载的 VSCode 扩展</a></p></li><li><p><a href="https://juejin.im/post/5d74eb5c51882525017787d9" target="_blank" rel="noreferrer">VS Code 折腾记 - (16) 推荐一波实用的插件集</a></p></li><li><p><a href="https://juejin.im/post/5db66672f265da4d0e009aad" target="_blank" rel="noreferrer">VSCode 前端必备插件，有可能你装了却不知道如何使用？</a></p></li><li><p><a href="https://juejin.im/post/5a08d1d6f265da430f31950e" target="_blank" rel="noreferrer">能让你开发效率翻倍的 VSCode 插件配置（上）</a></p></li><li><p><a href="https://segmentfault.com/a/1190000012811886" target="_blank" rel="noreferrer">https://segmentfault.com/a/1190000012811886</a></p></li><li><p><a href="https://idoubi.cc/2019/07/08/vscode-sublime-theme/" target="_blank" rel="noreferrer">「Vscode」打造类 sublime 的高颜值编辑器</a></p></li><li><p><a href="https://lsqy.tech/2020/03/14/20200314Mac-Vscode%E5%BF%AB%E6%8D%B7%E9%94%AE/" target="_blank" rel="noreferrer">Mac Vscode 快捷键</a></p></li><li><p><a href="https://mp.weixin.qq.com/s?src=11&amp;timestamp=1591581536&amp;ver=2387&amp;signature=i4xLZlLe1Gkl7OiBIhPO*VSeNB5lzFgTY-dgNW9E9ZbtIAv4bnJ1RdAAZdhvDw*cg-DmMcUa-V8NSUdV-tthmXZCq3ht4edCweq6v0QxKjnh8IuAxyyh5qymdRui*8iE&amp;new=1" target="_blank" rel="noreferrer">使用 VSCode 的一些技巧</a></p></li></ul><hr><p>本作品采用<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank" rel="noreferrer">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。</p><p><img src="https://img.smyhvae.com/20210329_1930.png" alt=""></p></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><!----><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><!----></div><div class="pager" data-v-face870a><a class="pager-link next" href="/blog-fifi/%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/02-Git%E7%9A%84%E4%BD%BF%E7%94%A8.html" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>02 Git</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><!----><p class="copyright" data-v-2f86ebd2>Copyright © 2023-present fifi</p></div></footer><!--[--><!--]--></div></div>
    <script>__VP_HASH_MAP__ = JSON.parse("{\"框架_react_01脚手架.md\":\"f6d2dbf2\",\"images_qqcode.md\":\"610c7ae0\",\"前端工具_chrome浏览器.md\":\"e0fbb704\",\"前端工具_iconmoon.md\":\"bed7c50c\",\"前端工具_emmet in vs code.md\":\"b42f209f\",\"前端工具_webstorm的使用.md\":\"f6ff84ab\",\"前端工具_vs code的使用积累.md\":\"563f192c\",\"index.md\":\"4ea7a894\",\"前端工具_02-git的使用.md\":\"f0b52d49\",\"前端工具_mac安装和配置iterm2.md\":\"eda077e8\",\"框架_react_02组件.md\":\"ddcff680\",\"前端工具_sublime text在前端中的使用.md\":\"34b2d82c\",\"前端工具_03-网络抓包和代理工具：whistle.md\":\"d4126301\",\"前端工具_github的使用.md\":\"3da40bab\",\"前端工具_iterm2 _ ohmyzsh _ agnoster 搭建.md\":\"bc3938aa\",\"前端工具_atom在前端的使用.md\":\"370bc080\",\"前端工具_01-vs code的使用.md\":\"959a7ce4\"}")
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"blog-fifi\",\"description\":\"blog-fifi\",\"base\":\"/blog-fifi/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"Home\",\"link\":\"/\"},{\"text\":\"前端工具\",\"link\":\"/前端工具/01-VS Code的使用.md\"},{\"text\":\"前端基础\",\"link\":\"/框架/React/01脚手架.md\"},{\"text\":\"前端框架\",\"link\":\"/框架/React/01脚手架.md\"},{\"text\":\"其他\",\"link\":\"/前端工具/01-VS Code的使用.md\"}],\"sidebar\":[{\"text\":\"前端工具\",\"collapsed\":true,\"items\":[{\"text\":\"01 VS Code\",\"link\":\"/前端工具/01-VS Code的使用.md\"},{\"text\":\"02 Git\",\"link\":\"/前端工具/02-Git的使用.md\"},{\"text\":\"03 网络抓包和代理工具\",\"link\":\"/前端工具/03-网络抓包和代理工具：Whistle.md\"}]},{\"text\":\"前端基础\",\"collapsed\":true,\"items\":[{\"text\":\"HTML\",\"items\":[{\"text\":\"01 脚手架\",\"link\":\"/框架/React/01脚手架.md\"},{\"text\":\"02 组件\",\"link\":\"/框架/React/02组件.md\"}]},{\"text\":\"CSS\",\"items\":[{\"text\":\"01 脚手架\",\"link\":\"/框架/React/01脚手架.md\"},{\"text\":\"02 组件\",\"link\":\"/框架/React/02组件.md\"}]},{\"text\":\"JS\",\"items\":[{\"text\":\"01 脚手架\",\"link\":\"/框架/React/01脚手架.md\"},{\"text\":\"02 组件\",\"link\":\"/框架/React/02组件.md\"}]},{\"text\":\"TS\",\"items\":[{\"text\":\"01 脚手架\",\"link\":\"/框架/React/01脚手架.md\"},{\"text\":\"02 组件\",\"link\":\"/框架/React/02组件.md\"}]}]},{\"text\":\"前端框架\",\"collapsed\":true,\"items\":[{\"text\":\"React18\",\"items\":[{\"text\":\"01 脚手架\",\"link\":\"/框架/React/01脚手架.md\"},{\"text\":\"02 组件\",\"link\":\"/框架/React/02组件.md\"}]},{\"text\":\"Vue3\",\"link\":\"/前端工具/02-Git的使用.md\"}]},{\"text\":\"其他\",\"collapsed\":true,\"items\":[{\"text\":\"ChatGPT\",\"items\":[{\"text\":\"接口 1\",\"link\":\"https://poe.com/\"},{\"text\":\"接口 2\",\"link\":\"https://freegpt.one/\"},{\"text\":\"接口 3\",\"link\":\"https://chatbot.theb.ai/\"}]}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/feifei128/\"}],\"footer\":{\"copyright\":\"Copyright © 2023-present fifi\"},\"search\":{\"provider\":\"local\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script>
    
  </body>
</html>